package com.fw.ui.view.profile;

import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;

import com.fw.service.bean.EntryBean;
import com.fw.service.formvalidator.FormValidatorService;
import com.fw.service.serviceprofile.bean.ServiceProfileBean;
import com.fw.ui.bao.FileBAO;
import com.fw.ui.bao.MasterDataBAO;
import com.fw.ui.bao.MessageBAO;
import com.fw.ui.bao.PropertyBAO;
import com.fw.ui.bao.ServiceProfileBAO;
import com.fw.ui.core.ViewDescription;
import com.fw.ui.util.UICommonUtils;
import com.fw.ui.util.VaadinApplicationObjectSupport;
import com.fw.ui.util.validator.StringLengthValidator;
import com.fw.ui.view.AbstractView;
import com.fw.ui.view.event.PrintButtonClickListener;
import com.fw.ui.view.profile.service.event.EditCashServiceProfileCancelButtonClickListener;
import com.fw.ui.view.profile.service.event.EditCashServiceProfileIsBankGuaranteeValueChangeListener;
import com.fw.ui.view.profile.service.event.EditCashServiceProfileIsCancellUrlValueChangeListener;
import com.fw.ui.view.profile.service.event.EditCashServiceProfileIsFailUrlValueChangeListener;
import com.fw.ui.view.profile.service.event.EditCashServiceProfileIsResponseUrlBackValueChangeListener;
import com.fw.ui.view.profile.service.event.EditCashServiceProfileIsSuccessUrlValueChangeListener;
import com.fw.ui.view.profile.service.event.EditCashServiceProfileSaveButtonClickListener;
import com.fw.util.StringUtils;
import com.vaadin.data.Validator;
import com.vaadin.data.validator.RegexpValidator;
import com.vaadin.server.Page;
import com.vaadin.server.VaadinService;
import com.vaadin.shared.ui.combobox.FilteringMode;
import com.vaadin.shared.ui.datefield.Resolution;
import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Notification;
import com.vaadin.ui.Panel;
import com.vaadin.ui.PopupDateField;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;

@org.springframework.stereotype.Component
@Scope(SCOPE_PROTOTYPE)
@ViewDescription(name = "profile-service-cash-edit", path = "/profile/service/cash/edit")
public class EditCashServiceProfileView extends AbstractView {

    // private static Logger log = Logger.getLogger(EditCashServiceProfileView.class.getName());

    private static final long serialVersionUID = 1L;

    public static final String EDIT_CASH_SERVICE_PROFILE_SERVICE_PROFILE_ID_REQUEST_ATTRIBUTE = "EDIT_CASH_SERVICE_PROFILE_SERVICE_PROFILE_ID_REQUEST_ATTRIBUTE";
    @Autowired
    protected transient VaadinApplicationObjectSupport app;

    @Autowired
    private ServiceProfileBAO serviceProfileBAO;
    @Autowired
    private MasterDataBAO masterDataBAO;
    @Autowired
    private MessageBAO messageBAO;
    @Autowired
    private PropertyBAO propertyBAO;
    @Autowired
    private FileBAO fileBAO;
    @Autowired
    private UICommonUtils uiCommonUtils;

    /**
     * BEAN
     */
    private ServiceProfileBean serviceProfileBean = new ServiceProfileBean();

    /**
     * EVENT
     */
    @Autowired
    private EditCashServiceProfileSaveButtonClickListener editCashServiceProfileSaveButtonClickListener;
    @Autowired
    private EditCashServiceProfileCancelButtonClickListener editCashServiceProfileCancelButtonClickListener;

    @Autowired
    private EditCashServiceProfileIsBankGuaranteeValueChangeListener editCashServiceProfileIsBankGuaranteeValueChangeListener;
    @Autowired
    private EditCashServiceProfileIsResponseUrlBackValueChangeListener editCashServiceProfileIsResponseUrlBackValueChangeListener;
    @Autowired
    private EditCashServiceProfileIsSuccessUrlValueChangeListener editCashServiceProfileIsSuccessUrlValueChangeListener;
    @Autowired
    private EditCashServiceProfileIsFailUrlValueChangeListener editCashServiceProfileIsFailUrlValueChangeListener;
    @Autowired
    private EditCashServiceProfileIsCancellUrlValueChangeListener editCashServiceProfileIsCancellUrlValueChangeListener;

    @Autowired
    private PrintButtonClickListener printButtonClickListener;
    /**
     * COMPONENT
     */
    private Panel editCashServiceProfilePanel = new Panel();
    private Panel serviceInformationPanel = new Panel();
    private Panel paymentServicePanel = new Panel();
    private Panel paymentLimitPanel = new Panel();
    private Panel serviceContactPersonPanel = new Panel();

    private Label lblBlank = new Label("", ContentMode.HTML);
    private Label lblServiceId = new Label("", ContentMode.HTML);
    private Label lblMerchantId = new Label("", ContentMode.HTML);
    private Label lblServiceStatus = new Label("", ContentMode.HTML);
    private Label lblHost = new Label("", ContentMode.HTML);
    private Label lblBankGuaranteeExpireDate = new Label("", ContentMode.HTML);
    private Label lblChequeName = new Label("", ContentMode.HTML);
    private Label lblLaunchedDate = new Label("", ContentMode.HTML);

    private Label lblInvoiceAging = new Label("", ContentMode.HTML);
    private Label lblInvoiceAgingSuffix = new Label("", ContentMode.HTML);
    private Label lblBankCodeAndName = new Label("", ContentMode.HTML);
    private Label lblBankAccountNo = new Label("", ContentMode.HTML);
    private Label lblSapArCode = new Label("", ContentMode.HTML);
    private Label lblSapApCode = new Label("", ContentMode.HTML);
    private Label lblMessageSlip1 = new Label("", ContentMode.HTML);
    private Label lblMessageSlip2 = new Label("", ContentMode.HTML);
    private Label lblMdr = new Label("", ContentMode.HTML);
    private Label lblMdrSuffix = new Label("", ContentMode.HTML);
    private Label lblServiceFee = new Label("", ContentMode.HTML);
    private Label lblServiceFeeSuffix = new Label("", ContentMode.HTML);

    private Label lblDailyLimit = new Label("", ContentMode.HTML);
    private Label lblDailyLimitSuffix = new Label("", ContentMode.HTML);
    private Label lblMonthlyLimit = new Label("", ContentMode.HTML);
    private Label lblMonthlyLimitSuffix = new Label("", ContentMode.HTML);
    private Label lblTransactionAmountLimit = new Label("", ContentMode.HTML);
    private Label lblTransactionAmountLimitSuffix = new Label("", ContentMode.HTML);

    private Label lblProjectTitle = new Label("", ContentMode.HTML);
    private Label lblProjectContactName = new Label("", ContentMode.HTML);
    private Label lblProjectContactPhone = new Label("", ContentMode.HTML);
    private Label lblProjectContactMobile = new Label("", ContentMode.HTML);
    private Label lblProjectContactEmailAddress = new Label("", ContentMode.HTML);

    private Label lblOperationTitle = new Label("", ContentMode.HTML);
    private Label lblOperationContactName = new Label("", ContentMode.HTML);
    private Label lblOperationContactPhone = new Label("", ContentMode.HTML);
    private Label lblOperationContactMobile = new Label("", ContentMode.HTML);
    private Label lblOperationContactEmailAddress = new Label("", ContentMode.HTML);

    private Label lblTechnicalTitle = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactName = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactPhone = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactMobile = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactEmailAddress = new Label("", ContentMode.HTML);

    private Label lblFinancialTitle = new Label("", ContentMode.HTML);
    private Label lblFinancialContactName = new Label("", ContentMode.HTML);
    private Label lblFinancialContactPhone = new Label("", ContentMode.HTML);
    private Label lblFinancialContactMobile = new Label("", ContentMode.HTML);
    private Label lblFinancialContactEmailAddress = new Label("", ContentMode.HTML);

    private CheckBox cbIsTestService = new CheckBox();
    private TextField txtServiceId = new TextField();
    private ComboBox cbbMerchantId = new ComboBox();
    private ComboBox cbbServiceStatus = new ComboBox();
    private ComboBox cbbHost = new ComboBox();
    private CheckBox cbIsBankGuarantee = new CheckBox();
    private TextField txtBankGuarantee = new TextField();
    private PopupDateField pdfBankGuaranteeExpireDate = new PopupDateField();
    private TextField txtChequeName = new TextField();
    private PopupDateField pdfLaunchedDate = new PopupDateField();
    private CheckBox cbIsResponseUrlBack = new CheckBox();
    private TextField txtResponseUrlBack = new TextField();
    private CheckBox cbIsSuccessUrl = new CheckBox();
    private TextField txtSuccessUrl = new TextField();
    private CheckBox cbIsFailUrl = new CheckBox();
    private TextField txtFailUrl = new TextField();
    private CheckBox cbIsCancelUrl = new CheckBox();
    private TextField txtCancelUrl = new TextField();
    private CheckBox cbIsNotifyCustomer = new CheckBox();

    private TextField txtInvoiceAging = new TextField();
    private CheckBox cbIsBypassInvoiceAging = new CheckBox();
    private ComboBox cbbBankCodeAndName = new ComboBox();
    private TextField txtBankAccountNo = new TextField();
    private TextField txtSapArCode = new TextField();
    private TextField txtSapApCode = new TextField();
    private TextField txtMessageSlip1 = new TextField();
    private TextField txtMessageSlip2 = new TextField();
    private TextField txtMdr = new TextField();
    private TextField txtServiceFee = new TextField();

    private TextField txtDailyLimit = new TextField();
    private TextField txtMonthlyLimit = new TextField();
    private TextField txtTransactionAmountLimit = new TextField();

    private TextField txtProjectContactName = new TextField();
    private TextField txtProjectContactPhone = new TextField();
    private TextField txtProjectContactMobile = new TextField();
    private TextArea txtProjectContactEmailAddress = new TextArea();

    private TextField txtOperationContactName = new TextField();
    private TextField txtOperationContactPhone = new TextField();
    private TextField txtOperationContactMobile = new TextField();
    private TextArea txtOperationContactEmailAddress = new TextArea();

    private TextField txtTechnicalContactName = new TextField();
    private TextField txtTechnicalContactPhone = new TextField();
    private TextField txtTechnicalContactMobile = new TextField();
    private TextArea txtTechnicalContactEmailAddress = new TextArea();

    private TextField txtFinancialContactName = new TextField();
    private TextField txtFinancialContactPhone = new TextField();
    private TextField txtFinancialContactMobile = new TextField();
    private TextArea txtFinancialContactEmailAddress = new TextArea();

    private Label lblIsTestServiceValidateMessage = new Label("", ContentMode.HTML);
    private Label lblServiceIdValidateMessage = new Label("", ContentMode.HTML);
    private Label lblMerchantIdValidateMessage = new Label("", ContentMode.HTML);
    private Label lblServiceStatusValidateMessage = new Label("", ContentMode.HTML);
    private Label lblHostValidateMessage = new Label("", ContentMode.HTML);
    private Label lblBankGuaranteeValidateMessage = new Label("", ContentMode.HTML);
    private Label lblBankGuaranteeExpireDateValidateMessage = new Label("", ContentMode.HTML);
    private Label lblChequeNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblLaunchedDateValidateMessage = new Label("", ContentMode.HTML);
    private Label lblResponseUrlBackValidateMessage = new Label("", ContentMode.HTML);
    private Label lblSuccessUrlValidateMessage = new Label("", ContentMode.HTML);
    private Label lblFailUrlValidateMessage = new Label("", ContentMode.HTML);
    private Label lblCancelUrlValidateMessage = new Label("", ContentMode.HTML);
    private Label lblNotifyCustomerValidateMessage = new Label("", ContentMode.HTML);

    private Label lblInvoiceAgingValidateMessage = new Label("", ContentMode.HTML);
    private Label lblBypassInvoiceAgingValidateMessage = new Label("", ContentMode.HTML);
    private Label lblBankCodeAndNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblBankAccountNoValidateMessage = new Label("", ContentMode.HTML);
    private Label lblSapArCodeValidateMessage = new Label("", ContentMode.HTML);
    private Label lblSapApCodeValidateMessage = new Label("", ContentMode.HTML);
    private Label lblMessageSlip1ValidateMessage = new Label("", ContentMode.HTML);
    private Label lblMessageSlip2ValidateMessage = new Label("", ContentMode.HTML);
    private Label lblMdrValidateMessage = new Label("", ContentMode.HTML);
    private Label lblServiceFeeValidateMessage = new Label("", ContentMode.HTML);

    private Label lblDailyLimitValidateMessage = new Label("", ContentMode.HTML);
    private Label lblMonthlyLimitValidateMessage = new Label("", ContentMode.HTML);
    private Label lblTransactionAmountLimitValidateMessage = new Label("", ContentMode.HTML);

    private Label lblProjectContactNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblProjectContactPhoneValidateMessage = new Label("", ContentMode.HTML);
    private Label lblProjectContactMobileValidateMessage = new Label("", ContentMode.HTML);
    private Label lblProjectContactEmailAddressValidateMessage = new Label("", ContentMode.HTML);

    private Label lblOperationContactNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblOperationContactPhoneValidateMessage = new Label("", ContentMode.HTML);
    private Label lblOperationContactMobileValidateMessage = new Label("", ContentMode.HTML);
    private Label lblOperationContactEmailAddressValidateMessage = new Label("", ContentMode.HTML);

    private Label lblTechnicalContactNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactPhoneValidateMessage = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactMobileValidateMessage = new Label("", ContentMode.HTML);
    private Label lblTechnicalContactEmailAddressValidateMessage = new Label("", ContentMode.HTML);

    private Label lblFinancialContactNameValidateMessage = new Label("", ContentMode.HTML);
    private Label lblFinancialContactPhoneValidateMessage = new Label("", ContentMode.HTML);
    private Label lblFinancialContactMobileValidateMessage = new Label("", ContentMode.HTML);
    private Label lblFinancialContactEmailAddressValidateMessage = new Label("", ContentMode.HTML);

    private HorizontalLayout layoutIsTestServiceValidate = new HorizontalLayout();
    private HorizontalLayout layoutServiceIdValidate = new HorizontalLayout();
    private HorizontalLayout layoutMerchantIdValidate = new HorizontalLayout();
    private HorizontalLayout layoutServiceStatusValidate = new HorizontalLayout();
    private HorizontalLayout layoutHostValidate = new HorizontalLayout();
    private HorizontalLayout layoutBankGuaranteeValidate = new HorizontalLayout();
    private HorizontalLayout layoutBankGuaranteeExpireDateValidate = new HorizontalLayout();
    private HorizontalLayout layoutChequeNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutLaunchedDateValidate = new HorizontalLayout();
    private HorizontalLayout layoutResponseUrlBackValidate = new HorizontalLayout();
    private HorizontalLayout layoutSuccessUrlValidate = new HorizontalLayout();
    private HorizontalLayout layoutFailUrlValidate = new HorizontalLayout();
    private HorizontalLayout layoutCancelUrlValidate = new HorizontalLayout();
    private HorizontalLayout layoutNotifyCustomerValidate = new HorizontalLayout();
    private HorizontalLayout layoutBlank1Validate = new HorizontalLayout();
    private HorizontalLayout layoutBlank2Validate = new HorizontalLayout();

    private HorizontalLayout layoutInvoiceAgingValidate = new HorizontalLayout();
    private HorizontalLayout layoutBypassInvoiceAgingValidate = new HorizontalLayout();
    private HorizontalLayout layoutBankCodeAndNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutBankAccountNoValidate = new HorizontalLayout();
    private HorizontalLayout layoutSapArCodeValidate = new HorizontalLayout();
    private HorizontalLayout layoutSapApCodeValidate = new HorizontalLayout();
    private HorizontalLayout layoutMessageSlip1Validate = new HorizontalLayout();
    private HorizontalLayout layoutMessageSlip2Validate = new HorizontalLayout();
    private HorizontalLayout layoutMdrValidate = new HorizontalLayout();
    private HorizontalLayout layoutServiceFeeValidate = new HorizontalLayout();

    private HorizontalLayout layoutDailyLimitValidate = new HorizontalLayout();
    private HorizontalLayout layoutMonthlyLimitValidate = new HorizontalLayout();
    private HorizontalLayout layoutTransactionAmountLimitValidate = new HorizontalLayout();
    private HorizontalLayout layoutBlank3Validate = new HorizontalLayout();

    private HorizontalLayout layoutProjectContactNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutProjectContactPhoneValidate = new HorizontalLayout();
    private HorizontalLayout layoutProjectContactMobileValidate = new HorizontalLayout();
    private HorizontalLayout layoutProjectContactEmailAddressValidate = new HorizontalLayout();

    private HorizontalLayout layoutOperationContactNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutOperationContactPhoneValidate = new HorizontalLayout();
    private HorizontalLayout layoutOperationContactMobileValidate = new HorizontalLayout();
    private HorizontalLayout layoutOperationContactEmailAddressValidate = new HorizontalLayout();

    private HorizontalLayout layoutTechnicalContactNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutTechnicalContactPhoneValidate = new HorizontalLayout();
    private HorizontalLayout layoutTechnicalContactMobileValidate = new HorizontalLayout();
    private HorizontalLayout layoutTechnicalContactEmailAddressValidate = new HorizontalLayout();

    private HorizontalLayout layoutFinancialContactNameValidate = new HorizontalLayout();
    private HorizontalLayout layoutFinancialContactPhoneValidate = new HorizontalLayout();
    private HorizontalLayout layoutFinancialContactMobileValidate = new HorizontalLayout();
    private HorizontalLayout layoutFinancialContactEmailAddressValidate = new HorizontalLayout();

    private Button btnSave = new Button();
    private Button btnCancel = new Button();

    @Override
    public void updateStrings() {
	editCashServiceProfilePanel.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.title"));
	serviceInformationPanel.setCaption(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.serviceInformationPanel.title"));
	paymentServicePanel.setCaption(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.paymentServicePanel.title"));
	paymentLimitPanel.setCaption(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.paymentLimitPanel.title"));
	serviceContactPersonPanel.setCaption(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.serviceContactPersonPanel.title"));

	cbIsTestService.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.isTestService"));
	lblServiceId.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.serviceId"));
	lblMerchantId.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.merchantId"));
	lblServiceStatus.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.serviceStatus"));
	lblHost.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.host"));
	cbIsBankGuarantee.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.bankGuarantee"));
	lblBankGuaranteeExpireDate.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.bankGuaranteeExpireDate"));
	lblChequeName.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.chequeName"));
	lblLaunchedDate.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.launchedDate"));
	cbIsResponseUrlBack.setCaption(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.responseUrlBack"));
	cbIsSuccessUrl.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.successUrl"));
	cbIsFailUrl.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.failUrl"));
	cbIsCancelUrl.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.cancelUrl"));
	cbIsNotifyCustomer.setCaption(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.isNotifyCustomer"));
	lblInvoiceAging.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.invoiceAging"));
	lblInvoiceAgingSuffix.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.invoiceAging.suffix"));
	cbIsBypassInvoiceAging.setCaption(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.isBypassInvoiceAging"));
	lblBankCodeAndName.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.bankCodeAndName"));
	lblBankAccountNo.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.bankAccountNo"));
	lblSapArCode.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.sapArCode"));
	lblSapApCode.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.sapApCode"));
	lblMessageSlip1.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.messageSlip1"));
	lblMessageSlip2.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.messageSlip2"));
	lblMdr.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.mdr"));
	lblMdrSuffix.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.mdr.suffix"));
	lblServiceFee.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.serviceFee"));
	lblServiceFeeSuffix.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.serviceFee.suffix"));

	lblDailyLimit.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.dailyLimit"));
	lblDailyLimitSuffix.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.dailyLimit.suffix"));
	lblMonthlyLimit.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.monthlyLimit"));
	lblMonthlyLimitSuffix.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.monthlyLimit.suffix"));
	lblTransactionAmountLimit.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.transactionAmountLimit"));
	lblTransactionAmountLimitSuffix.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.transactionAmountLimit.suffix"));

	lblProjectTitle.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.project"));
	lblProjectContactName.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.name"));
	lblProjectContactPhone
		.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.phone"));
	lblProjectContactMobile.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.mobile"));
	lblProjectContactEmailAddress.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.email"));

	lblOperationTitle.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.operation"));
	lblOperationContactName
		.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.name"));
	lblOperationContactPhone.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.phone"));
	lblOperationContactMobile.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.mobile"));
	lblOperationContactEmailAddress.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.email"));

	lblTechnicalTitle.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.technical"));
	lblTechnicalContactName
		.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.name"));
	lblTechnicalContactPhone.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.phone"));
	lblTechnicalContactMobile.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.mobile"));
	lblTechnicalContactEmailAddress.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.email"));

	lblFinancialTitle.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.financial"));
	lblFinancialContactName
		.setValue(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.name"));
	lblFinancialContactPhone.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.phone"));
	lblFinancialContactMobile.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.mobile"));
	lblFinancialContactEmailAddress.setValue(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.label.contact.email"));

	this.cbbMerchantId.setInputPrompt(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.inputprompt.merchantId"));
	this.cbbServiceStatus.setInputPrompt(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.inputprompt.serviceStatus"));
	this.cbbHost.setInputPrompt(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.inputprompt.host"));
	this.pdfBankGuaranteeExpireDate.setInputPrompt(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.inputprompt.bankGuaranteeExpireDate"));
	this.pdfLaunchedDate.setInputPrompt(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.inputprompt.launchedDate"));
	this.cbbBankCodeAndName.setInputPrompt(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.inputprompt.bankCodeAndName"));

	this.pdfBankGuaranteeExpireDate.setDateFormat(this.propertyBAO
		.getPropertyValue("com.fw.ui.view.profile.EditCashServiceProfileView.format.bankGuaranteeExpireDate"));
	this.pdfLaunchedDate.setDateFormat(this.propertyBAO
		.getPropertyValue("com.fw.ui.view.profile.EditCashServiceProfileView.format.launchedDate"));

	this.btnSave.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.button.save"));
	this.btnCancel.setCaption(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.button.cancel"));

    }

    @Override
    public void init() {
	this.setSizeFull();

	this.editCashServiceProfilePanel.setSizeFull();
	this.editCashServiceProfilePanel.setId("editCashServiceProfilePanel");

	serviceInformationPanel.setId("serviceInformationPanel");
	serviceInformationPanel.setSizeFull();
	serviceInformationPanel.addStyleName("panel-caption-small");

	paymentServicePanel.setId("paymentServicePanel");
	paymentServicePanel.setSizeFull();
	paymentServicePanel.addStyleName("panel-caption-small");

	paymentLimitPanel.setId("paymentLimitPanel");
	paymentLimitPanel.setSizeFull();
	paymentLimitPanel.addStyleName("panel-caption-small");

	serviceContactPersonPanel.setId("serviceContactPersonPanel");
	serviceContactPersonPanel.setSizeFull();
	serviceContactPersonPanel.addStyleName("panel-caption-small");

	lblServiceIdValidateMessage.setId("lblServiceIdValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMerchantIdValidateMessage.setId("lblMerchantIdValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblServiceStatusValidateMessage.setId("lblServiceStatusValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblHostValidateMessage.setId("lblHostValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblBankGuaranteeValidateMessage.setId("lblBankGuaranteeValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblBankGuaranteeExpireDateValidateMessage.setId("lblBankGuaranteeExpireDateValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblChequeNameValidateMessage.setId("lblChequeNameValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblLaunchedDateValidateMessage.setId("lblLaunchedDateValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblResponseUrlBackValidateMessage.setId("lblResponseUrlBackValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblSuccessUrlValidateMessage.setId("lblSuccessUrlValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblFailUrlValidateMessage.setId("lblFailUrlValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblCancelUrlValidateMessage.setId("lblCancelUrlValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblNotifyCustomerValidateMessage.setId("lblNotifyCustomerValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblInvoiceAgingValidateMessage.setId("lblInvoiceAgingValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblBypassInvoiceAgingValidateMessage.setId("lblBypassInvoiceAgingValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblBankCodeAndNameValidateMessage.setId("lblBankCodeAndNameValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblBankAccountNoValidateMessage.setId("lblBankAccountNoValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblSapArCodeValidateMessage.setId("lblSapArCodeValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblSapApCodeValidateMessage.setId("lblSapApCodeValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMessageSlip1ValidateMessage.setId("lblMessageSlip1ValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMessageSlip2ValidateMessage.setId("lblMessageSlip2ValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMdrValidateMessage.setId("lblMdrValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblServiceFeeValidateMessage.setId("lblServiceFeeValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblDailyLimitValidateMessage.setId("lblDailyLimitValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblMonthlyLimitValidateMessage.setId("lblMonthlyLimitValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblTransactionAmountLimitValidateMessage.setId("lblTransactionAmountLimitValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblProjectContactNameValidateMessage.setId("lblProjectContactNameValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblProjectContactPhoneValidateMessage.setId("lblProjectContactPhoneValidateMessage" + UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblProjectContactMobileValidateMessage.setId("lblProjectContactMobileValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblProjectContactEmailAddressValidateMessage.setId("lblProjectContactEmailAddressValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblOperationContactNameValidateMessage.setId("lblOperationContactNameValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblOperationContactPhoneValidateMessage.setId("lblOperationContactPhoneValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblOperationContactMobileValidateMessage.setId("lblOperationContactMobileValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblOperationContactEmailAddressValidateMessage.setId("lblOperationContactEmailAddressValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblTechnicalContactNameValidateMessage.setId("lblTechnicalContactNameValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblTechnicalContactPhoneValidateMessage.setId("lblTechnicalContactPhoneValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblTechnicalContactMobileValidateMessage.setId("lblTechnicalContactMobileValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblTechnicalContactEmailAddressValidateMessage.setId("lblTechnicalContactEmailAddressValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblFinancialContactNameValidateMessage.setId("lblFinancialContactNameValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblFinancialContactPhoneValidateMessage.setId("lblFinancialContactPhoneValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblFinancialContactMobileValidateMessage.setId("lblFinancialContactMobileValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);
	lblFinancialContactEmailAddressValidateMessage.setId("lblFinancialContactEmailAddressValidateMessage"
		+ UICommonUtils.INCLUDE_VALUE_COMPONENT_PREFIX);

	layoutBlank1Validate.setId("layoutBlank1Validate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutBlank2Validate.setId("layoutBlank2Validate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutBlank3Validate.setId("layoutBlank3Validate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);

	layoutIsTestServiceValidate.setId("layoutIsTestServiceValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutServiceIdValidate.setId("layoutServiceIdValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMerchantIdValidate.setId("layoutMerchantIdValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutServiceStatusValidate.setId("layoutStatusValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutHostValidate.setId("layoutHostValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutBankGuaranteeValidate.setId("layoutBankGuaranteeValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutBankGuaranteeExpireDateValidate.setId("layoutBankGuaranteeExpireDateValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutChequeNameValidate.setId("layoutChequeNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutLaunchedDateValidate.setId("layoutLaunchedDateValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutResponseUrlBackValidate.setId("layoutResponseUrlBackValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutSuccessUrlValidate.setId("layoutSuccessUrlValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutFailUrlValidate.setId("layoutFailUrlValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutCancelUrlValidate.setId("layoutCancelUrlValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutNotifyCustomerValidate.setId("layoutNotifyCustomerValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutInvoiceAgingValidate.setId("layoutInvoiceAgingValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutBypassInvoiceAgingValidate.setId("layoutBypassInvoiceAgingValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutBankCodeAndNameValidate.setId("layoutBankCodeAndNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutBankAccountNoValidate.setId("layoutBankAccountNoValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutSapArCodeValidate.setId("layoutSapArCodeValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutSapApCodeValidate.setId("	layoutSapApCodeValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMessageSlip1Validate.setId("layoutMessageSlip1Validate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMessageSlip2Validate.setId("layoutMessageSlip2Validate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMdrValidate.setId("layoutMdrValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutServiceFeeValidate.setId("layoutServiceFeeValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutDailyLimitValidate.setId("layoutDailyLimitValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutMonthlyLimitValidate.setId("layoutMonthlyLimitValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutTransactionAmountLimitValidate.setId("layoutTransactionAmountLimitValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutProjectContactNameValidate.setId("layoutProjectContactNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutProjectContactPhoneValidate.setId("layoutProjectContactPhoneValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutProjectContactMobileValidate.setId("layoutProjectContactMobileValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutProjectContactEmailAddressValidate.setId("layoutProjectContactEmailAddressValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutOperationContactNameValidate.setId("layoutOperationContactNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutOperationContactPhoneValidate.setId("layoutOperationContactPhoneValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutOperationContactMobileValidate.setId("layoutOperationContactMobileValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutOperationContactEmailAddressValidate.setId("layoutOperationContactEmailAddressValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutTechnicalContactNameValidate.setId("layoutTechnicalContactNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutTechnicalContactPhoneValidate.setId("layoutTechnicalContactPhoneValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutTechnicalContactMobileValidate.setId("layoutTechnicalContactMobileValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutTechnicalContactEmailAddressValidate.setId("layoutTechnicalContactEmailAddressValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutFinancialContactNameValidate.setId("layoutFinancialContactNameValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutFinancialContactPhoneValidate.setId("layoutFinancialContactPhoneValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutFinancialContactMobileValidate.setId("layoutFinancialContactMobileValidate" + UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);
	layoutFinancialContactEmailAddressValidate.setId("layoutFinancialContactEmailAddressValidate"
		+ UICommonUtils.INCLUDE_VISIBLE_COMPONENT_PREFIX);

	lblServiceIdValidateMessage.setSizeUndefined();
	lblMerchantIdValidateMessage.setSizeUndefined();
	lblServiceStatusValidateMessage.setSizeUndefined();
	lblHostValidateMessage.setSizeUndefined();
	lblBankGuaranteeValidateMessage.setSizeUndefined();
	lblBankGuaranteeExpireDateValidateMessage.setSizeUndefined();
	lblChequeNameValidateMessage.setSizeUndefined();
	lblLaunchedDateValidateMessage.setSizeUndefined();
	lblResponseUrlBackValidateMessage.setSizeUndefined();
	lblSuccessUrlValidateMessage.setSizeUndefined();
	lblFailUrlValidateMessage.setSizeUndefined();
	lblCancelUrlValidateMessage.setSizeUndefined();
	lblNotifyCustomerValidateMessage.setSizeUndefined();
	lblInvoiceAgingValidateMessage.setSizeUndefined();
	lblBypassInvoiceAgingValidateMessage.setSizeUndefined();
	lblBankCodeAndNameValidateMessage.setSizeUndefined();
	lblBankAccountNoValidateMessage.setSizeUndefined();
	lblSapArCodeValidateMessage.setSizeUndefined();
	lblSapApCodeValidateMessage.setSizeUndefined();
	lblMessageSlip1ValidateMessage.setSizeUndefined();
	lblMessageSlip2ValidateMessage.setSizeUndefined();
	lblMdrValidateMessage.setSizeUndefined();
	lblServiceFeeValidateMessage.setSizeUndefined();
	lblDailyLimitValidateMessage.setSizeUndefined();
	lblMonthlyLimitValidateMessage.setSizeUndefined();
	lblTransactionAmountLimitValidateMessage.setSizeUndefined();
	lblProjectContactNameValidateMessage.setSizeUndefined();
	lblProjectContactPhoneValidateMessage.setSizeUndefined();
	lblProjectContactMobileValidateMessage.setSizeUndefined();
	lblProjectContactEmailAddressValidateMessage.setSizeUndefined();
	lblOperationContactNameValidateMessage.setSizeUndefined();
	lblOperationContactPhoneValidateMessage.setSizeUndefined();
	lblOperationContactMobileValidateMessage.setSizeUndefined();
	lblOperationContactEmailAddressValidateMessage.setSizeUndefined();
	lblTechnicalContactNameValidateMessage.setSizeUndefined();
	lblTechnicalContactPhoneValidateMessage.setSizeUndefined();
	lblTechnicalContactMobileValidateMessage.setSizeUndefined();
	lblTechnicalContactEmailAddressValidateMessage.setSizeUndefined();
	lblFinancialContactNameValidateMessage.setSizeUndefined();
	lblFinancialContactPhoneValidateMessage.setSizeUndefined();
	lblFinancialContactMobileValidateMessage.setSizeUndefined();
	lblFinancialContactEmailAddressValidateMessage.setSizeUndefined();

	lblServiceIdValidateMessage.addStyleName("validate-error");
	lblMerchantIdValidateMessage.addStyleName("validate-error");
	lblServiceStatusValidateMessage.addStyleName("validate-error");
	lblHostValidateMessage.addStyleName("validate-error");
	lblBankGuaranteeValidateMessage.addStyleName("validate-error");
	lblBankGuaranteeExpireDateValidateMessage.addStyleName("validate-error");
	lblChequeNameValidateMessage.addStyleName("validate-error");
	lblLaunchedDateValidateMessage.addStyleName("validate-error");
	lblResponseUrlBackValidateMessage.addStyleName("validate-error");
	lblSuccessUrlValidateMessage.addStyleName("validate-error");
	lblFailUrlValidateMessage.addStyleName("validate-error");
	lblCancelUrlValidateMessage.addStyleName("validate-error");
	lblNotifyCustomerValidateMessage.addStyleName("validate-error");
	lblInvoiceAgingValidateMessage.addStyleName("validate-error");
	lblBypassInvoiceAgingValidateMessage.addStyleName("validate-error");
	lblBankCodeAndNameValidateMessage.addStyleName("validate-error");
	lblBankAccountNoValidateMessage.addStyleName("validate-error");
	lblSapArCodeValidateMessage.addStyleName("validate-error");
	lblSapApCodeValidateMessage.addStyleName("validate-error");
	lblMessageSlip1ValidateMessage.addStyleName("validate-error");
	lblMessageSlip2ValidateMessage.addStyleName("validate-error");
	lblMdrValidateMessage.addStyleName("validate-error");
	lblServiceFeeValidateMessage.addStyleName("validate-error");
	lblDailyLimitValidateMessage.addStyleName("validate-error");
	lblMonthlyLimitValidateMessage.addStyleName("validate-error");
	lblTransactionAmountLimitValidateMessage.addStyleName("validate-error");
	lblProjectContactNameValidateMessage.addStyleName("validate-error");
	lblProjectContactPhoneValidateMessage.addStyleName("validate-error");
	lblProjectContactMobileValidateMessage.addStyleName("validate-error");
	lblProjectContactEmailAddressValidateMessage.addStyleName("validate-error");
	lblOperationContactNameValidateMessage.addStyleName("validate-error");
	lblOperationContactPhoneValidateMessage.addStyleName("validate-error");
	lblOperationContactMobileValidateMessage.addStyleName("validate-error");
	lblOperationContactEmailAddressValidateMessage.addStyleName("validate-error");
	lblTechnicalContactNameValidateMessage.addStyleName("validate-error");
	lblTechnicalContactPhoneValidateMessage.addStyleName("validate-error");
	lblTechnicalContactMobileValidateMessage.addStyleName("validate-error");
	lblTechnicalContactEmailAddressValidateMessage.addStyleName("validate-error");
	lblFinancialContactNameValidateMessage.addStyleName("validate-error");
	lblFinancialContactPhoneValidateMessage.addStyleName("validate-error");
	lblFinancialContactMobileValidateMessage.addStyleName("validate-error");
	lblFinancialContactEmailAddressValidateMessage.addStyleName("validate-error");

	layoutBlank1Validate.setVisible(false);
	layoutBlank2Validate.setVisible(false);
	layoutBlank3Validate.setVisible(false);
	layoutIsTestServiceValidate.setVisible(false);
	layoutServiceIdValidate.setVisible(false);
	layoutMerchantIdValidate.setVisible(false);
	layoutServiceStatusValidate.setVisible(false);
	layoutHostValidate.setVisible(false);
	layoutBankGuaranteeValidate.setVisible(false);
	layoutBankGuaranteeExpireDateValidate.setVisible(false);
	layoutChequeNameValidate.setVisible(false);
	layoutLaunchedDateValidate.setVisible(false);
	layoutResponseUrlBackValidate.setVisible(false);
	layoutSuccessUrlValidate.setVisible(false);
	layoutFailUrlValidate.setVisible(false);
	layoutCancelUrlValidate.setVisible(false);
	layoutNotifyCustomerValidate.setVisible(false);
	layoutInvoiceAgingValidate.setVisible(false);
	layoutBypassInvoiceAgingValidate.setVisible(false);
	layoutBankCodeAndNameValidate.setVisible(false);
	layoutBankAccountNoValidate.setVisible(false);
	layoutSapArCodeValidate.setVisible(false);
	layoutSapApCodeValidate.setVisible(false);
	layoutMessageSlip1Validate.setVisible(false);
	layoutMessageSlip2Validate.setVisible(false);
	layoutMdrValidate.setVisible(false);
	layoutServiceFeeValidate.setVisible(false);
	layoutDailyLimitValidate.setVisible(false);
	layoutMonthlyLimitValidate.setVisible(false);
	layoutTransactionAmountLimitValidate.setVisible(false);
	layoutProjectContactNameValidate.setVisible(false);
	layoutProjectContactPhoneValidate.setVisible(false);
	layoutProjectContactMobileValidate.setVisible(false);
	layoutProjectContactEmailAddressValidate.setVisible(false);
	layoutOperationContactNameValidate.setVisible(false);
	layoutOperationContactPhoneValidate.setVisible(false);
	layoutOperationContactMobileValidate.setVisible(false);
	layoutOperationContactEmailAddressValidate.setVisible(false);
	layoutTechnicalContactNameValidate.setVisible(false);
	layoutTechnicalContactPhoneValidate.setVisible(false);
	layoutTechnicalContactMobileValidate.setVisible(false);
	layoutTechnicalContactEmailAddressValidate.setVisible(false);
	layoutFinancialContactNameValidate.setVisible(false);
	layoutFinancialContactPhoneValidate.setVisible(false);
	layoutFinancialContactMobileValidate.setVisible(false);
	layoutFinancialContactEmailAddressValidate.setVisible(false);

	layoutBlank1Validate.setSpacing(true);
	layoutBlank2Validate.setSpacing(true);
	layoutBlank3Validate.setSpacing(true);
	layoutIsTestServiceValidate.setSpacing(true);
	layoutServiceIdValidate.setSpacing(true);
	layoutMerchantIdValidate.setSpacing(true);
	layoutServiceStatusValidate.setSpacing(true);
	layoutHostValidate.setSpacing(true);
	layoutBankGuaranteeValidate.setSpacing(true);
	layoutBankGuaranteeExpireDateValidate.setSpacing(true);
	layoutChequeNameValidate.setSpacing(true);
	layoutLaunchedDateValidate.setSpacing(true);
	layoutResponseUrlBackValidate.setSpacing(true);
	layoutSuccessUrlValidate.setSpacing(true);
	layoutFailUrlValidate.setSpacing(true);
	layoutCancelUrlValidate.setSpacing(true);
	layoutNotifyCustomerValidate.setSpacing(true);
	layoutInvoiceAgingValidate.setSpacing(true);
	layoutBypassInvoiceAgingValidate.setSpacing(true);
	layoutBankCodeAndNameValidate.setSpacing(true);
	layoutBankAccountNoValidate.setSpacing(true);
	layoutSapArCodeValidate.setSpacing(true);
	layoutSapApCodeValidate.setSpacing(true);
	layoutMessageSlip1Validate.setSpacing(true);
	layoutMessageSlip2Validate.setSpacing(true);
	layoutMdrValidate.setSpacing(true);
	layoutServiceFeeValidate.setSpacing(true);
	layoutDailyLimitValidate.setSpacing(true);
	layoutMonthlyLimitValidate.setSpacing(true);
	layoutTransactionAmountLimitValidate.setSpacing(true);
	layoutProjectContactNameValidate.setSpacing(true);
	layoutProjectContactPhoneValidate.setSpacing(true);
	layoutProjectContactMobileValidate.setSpacing(true);
	layoutProjectContactEmailAddressValidate.setSpacing(true);
	layoutOperationContactNameValidate.setSpacing(true);
	layoutOperationContactPhoneValidate.setSpacing(true);
	layoutOperationContactMobileValidate.setSpacing(true);
	layoutOperationContactEmailAddressValidate.setSpacing(true);
	layoutTechnicalContactNameValidate.setSpacing(true);
	layoutTechnicalContactPhoneValidate.setSpacing(true);
	layoutTechnicalContactMobileValidate.setSpacing(true);
	layoutTechnicalContactEmailAddressValidate.setSpacing(true);
	layoutFinancialContactNameValidate.setSpacing(true);
	layoutFinancialContactPhoneValidate.setSpacing(true);
	layoutFinancialContactMobileValidate.setSpacing(true);
	layoutFinancialContactEmailAddressValidate.setSpacing(true);

	// left
	Label lblSepInformationCol1Row1 = new Label();
	Label lblSepInformationCol1Row2 = new Label();
	Label lblSepInformationCol1Row3 = new Label();
	Label lblSepInformationCol1Row4 = new Label();
	Label lblSepInformationCol1Row5 = new Label();
	Label lblSepInformationCol1Row6 = new Label();
	Label lblSepInformationCol1Row7 = new Label();
	Label lblSepInformationCol1Row8 = new Label();

	Label lblSepPaymentServiceCol1Row1 = new Label();
	Label lblSepPaymentServiceCol1Row2 = new Label();
	Label lblSepPaymentServiceCol1Row3 = new Label();
	Label lblSepPaymentServiceCol1Row4 = new Label();
	Label lblSepPaymentServiceCol1Row5 = new Label();

	Label lblSepPaymentLimitCol1Row1 = new Label();
	Label lblSepPaymentLimitCol1Row2 = new Label();

	Label lblSepInformationContactCol1Row1 = new Label();
	Label lblSepInformationContactCol1Row2 = new Label();
	Label lblSepInformationContactCol1Row3 = new Label();
	Label lblSepInformationContactCol1Row4 = new Label();
	Label lblSepInformationContactCol1Row5 = new Label();
	Label lblSepInformationContactCol1Row6 = new Label();
	Label lblSepInformationContactCol1Row7 = new Label();
	Label lblSepInformationContactCol1Row8 = new Label();

	// right
	Label lblSepInformationCol2Row1 = new Label();
	Label lblSepInformationCol2Row2 = new Label();
	Label lblSepInformationCol2Row3 = new Label();
	Label lblSepInformationCol2Row4 = new Label();
	Label lblSepInformationCol2Row5 = new Label();
	Label lblSepInformationCol2Row6 = new Label();
	Label lblSepInformationCol2Row7 = new Label();
	Label lblSepInformationCol2Row8 = new Label();

	Label lblSepPaymentServiceCol2Row1 = new Label();
	Label lblSepPaymentServiceCol2Row2 = new Label();
	Label lblSepPaymentServiceCol2Row3 = new Label();
	Label lblSepPaymentServiceCol2Row4 = new Label();
	Label lblSepPaymentServiceCol2Row5 = new Label();

	Label lblSepPaymentLimitCol2Row1 = new Label();
	Label lblSepPaymentLimitCol2Row2 = new Label();

	Label lblSepInformationContactCol2Row1 = new Label();
	Label lblSepInformationContactCol2Row2 = new Label();
	Label lblSepInformationContactCol2Row3 = new Label();
	Label lblSepInformationContactCol2Row4 = new Label();
	Label lblSepInformationContactCol2Row5 = new Label();
	Label lblSepInformationContactCol2Row6 = new Label();
	Label lblSepInformationContactCol2Row7 = new Label();
	Label lblSepInformationContactCol2Row8 = new Label();

	lblSepInformationCol1Row1.setWidth("200px");
	lblSepInformationCol1Row2.setWidth("200px");
	lblSepInformationCol1Row3.setWidth("200px");
	lblSepInformationCol1Row4.setWidth("200px");
	lblSepInformationCol1Row5.setWidth("200px");
	lblSepInformationCol1Row6.setWidth("200px");
	lblSepInformationCol1Row7.setWidth("200px");
	lblSepInformationCol1Row8.setWidth("200px");
	lblSepPaymentServiceCol1Row1.setWidth("200px");
	lblSepPaymentServiceCol1Row2.setWidth("200px");
	lblSepPaymentServiceCol1Row3.setWidth("200px");
	lblSepPaymentServiceCol1Row4.setWidth("200px");
	lblSepPaymentServiceCol1Row5.setWidth("200px");
	lblSepPaymentLimitCol1Row1.setWidth("200px");
	lblSepPaymentLimitCol1Row2.setWidth("200px");
	lblSepInformationContactCol1Row1.setWidth("200px");
	lblSepInformationContactCol1Row2.setWidth("200px");
	lblSepInformationContactCol1Row3.setWidth("200px");
	lblSepInformationContactCol1Row4.setWidth("200px");
	lblSepInformationContactCol1Row5.setWidth("200px");
	lblSepInformationContactCol1Row6.setWidth("200px");
	lblSepInformationContactCol1Row7.setWidth("200px");
	lblSepInformationContactCol1Row8.setWidth("200px");

	lblSepInformationCol2Row1.setWidth("200px");
	lblSepInformationCol2Row2.setWidth("200px");
	lblSepInformationCol2Row3.setWidth("200px");
	lblSepInformationCol2Row4.setWidth("200px");
	lblSepInformationCol2Row5.setWidth("200px");
	lblSepInformationCol2Row6.setWidth("200px");
	lblSepInformationCol2Row7.setWidth("200px");
	lblSepInformationCol2Row8.setWidth("200px");
	lblSepPaymentServiceCol2Row1.setWidth("200px");
	lblSepPaymentServiceCol2Row2.setWidth("200px");
	lblSepPaymentServiceCol2Row3.setWidth("200px");
	lblSepPaymentServiceCol2Row4.setWidth("200px");
	lblSepPaymentServiceCol2Row5.setWidth("200px");
	lblSepPaymentLimitCol2Row1.setWidth("200px");
	lblSepPaymentLimitCol2Row2.setWidth("200px");
	lblSepInformationContactCol2Row1.setWidth("200px");
	lblSepInformationContactCol2Row2.setWidth("200px");
	lblSepInformationContactCol2Row3.setWidth("200px");
	lblSepInformationContactCol2Row4.setWidth("200px");
	lblSepInformationContactCol2Row5.setWidth("200px");
	lblSepInformationContactCol2Row6.setWidth("200px");
	lblSepInformationContactCol2Row7.setWidth("200px");
	lblSepInformationContactCol2Row8.setWidth("200px");

	// col1
	layoutIsTestServiceValidate.addComponent(lblSepInformationCol1Row1);
	layoutIsTestServiceValidate.addComponent(lblIsTestServiceValidateMessage);
	layoutIsTestServiceValidate.setComponentAlignment(lblIsTestServiceValidateMessage, Alignment.TOP_LEFT);

	layoutServiceIdValidate.addComponent(lblSepInformationCol1Row2);
	layoutServiceIdValidate.addComponent(lblServiceIdValidateMessage);
	layoutServiceIdValidate.setComponentAlignment(lblServiceIdValidateMessage, Alignment.TOP_LEFT);

	layoutServiceStatusValidate.addComponent(lblSepInformationCol1Row3);
	layoutServiceStatusValidate.addComponent(lblServiceStatusValidateMessage);
	layoutServiceStatusValidate.setComponentAlignment(lblServiceStatusValidateMessage, Alignment.TOP_LEFT);

	layoutBankGuaranteeValidate.addComponent(lblSepInformationCol1Row4);
	layoutBankGuaranteeValidate.addComponent(lblBankGuaranteeValidateMessage);
	layoutBankGuaranteeValidate.setComponentAlignment(lblBankGuaranteeValidateMessage, Alignment.TOP_LEFT);

	layoutChequeNameValidate.addComponent(lblSepInformationCol1Row5);
	layoutChequeNameValidate.addComponent(lblChequeNameValidateMessage);
	layoutChequeNameValidate.setComponentAlignment(lblChequeNameValidateMessage, Alignment.TOP_LEFT);

	layoutNotifyCustomerValidate.addComponent(lblSepInformationCol1Row6);
	layoutNotifyCustomerValidate.addComponent(lblNotifyCustomerValidateMessage);
	layoutNotifyCustomerValidate.setComponentAlignment(lblNotifyCustomerValidateMessage, Alignment.TOP_LEFT);

	layoutResponseUrlBackValidate.addComponent(lblSepInformationCol1Row7);
	layoutResponseUrlBackValidate.addComponent(lblResponseUrlBackValidateMessage);
	layoutResponseUrlBackValidate.setComponentAlignment(lblResponseUrlBackValidateMessage, Alignment.TOP_LEFT);

	layoutFailUrlValidate.addComponent(lblSepInformationCol1Row8);
	layoutFailUrlValidate.addComponent(lblFailUrlValidateMessage);
	layoutFailUrlValidate.setComponentAlignment(lblFailUrlValidateMessage, Alignment.TOP_LEFT);

	layoutInvoiceAgingValidate.addComponent(lblSepPaymentServiceCol1Row1);
	layoutInvoiceAgingValidate.addComponent(lblInvoiceAgingValidateMessage);
	layoutInvoiceAgingValidate.setComponentAlignment(lblInvoiceAgingValidateMessage, Alignment.TOP_LEFT);

	layoutBankCodeAndNameValidate.addComponent(lblSepPaymentServiceCol1Row2);
	layoutBankCodeAndNameValidate.addComponent(lblBankCodeAndNameValidateMessage);
	layoutBankCodeAndNameValidate.setComponentAlignment(lblBankCodeAndNameValidateMessage, Alignment.TOP_LEFT);

	layoutSapArCodeValidate.addComponent(lblSepPaymentServiceCol1Row3);
	layoutSapArCodeValidate.addComponent(lblSapArCodeValidateMessage);
	layoutSapArCodeValidate.setComponentAlignment(lblSapArCodeValidateMessage, Alignment.TOP_LEFT);

	layoutMessageSlip1Validate.addComponent(lblSepPaymentServiceCol1Row4);
	layoutMessageSlip1Validate.addComponent(lblMessageSlip1ValidateMessage);
	layoutMessageSlip1Validate.setComponentAlignment(lblMessageSlip1ValidateMessage, Alignment.TOP_LEFT);

	layoutMdrValidate.addComponent(lblSepPaymentServiceCol1Row5);
	layoutMdrValidate.addComponent(lblMdrValidateMessage);
	layoutMdrValidate.setComponentAlignment(lblMdrValidateMessage, Alignment.TOP_LEFT);

	layoutDailyLimitValidate.addComponent(lblSepPaymentLimitCol1Row1);
	layoutDailyLimitValidate.addComponent(lblDailyLimitValidateMessage);
	layoutDailyLimitValidate.setComponentAlignment(lblDailyLimitValidateMessage, Alignment.TOP_LEFT);

	layoutTransactionAmountLimitValidate.addComponent(lblSepPaymentLimitCol1Row2);
	layoutTransactionAmountLimitValidate.addComponent(lblTransactionAmountLimitValidateMessage);
	layoutTransactionAmountLimitValidate.setComponentAlignment(lblTransactionAmountLimitValidateMessage, Alignment.TOP_LEFT);

	layoutProjectContactNameValidate.addComponent(lblSepInformationContactCol1Row1);
	layoutProjectContactNameValidate.addComponent(lblProjectContactNameValidateMessage);
	layoutProjectContactNameValidate.setComponentAlignment(lblProjectContactNameValidateMessage, Alignment.TOP_LEFT);

	layoutProjectContactPhoneValidate.addComponent(lblSepInformationContactCol1Row2);
	layoutProjectContactPhoneValidate.addComponent(lblProjectContactPhoneValidateMessage);
	layoutProjectContactPhoneValidate.setComponentAlignment(lblProjectContactPhoneValidateMessage, Alignment.TOP_LEFT);

	layoutProjectContactMobileValidate.addComponent(lblSepInformationContactCol1Row3);
	layoutProjectContactMobileValidate.addComponent(lblProjectContactMobileValidateMessage);
	layoutProjectContactMobileValidate.setComponentAlignment(lblProjectContactMobileValidateMessage, Alignment.TOP_LEFT);

	layoutProjectContactEmailAddressValidate.addComponent(lblSepInformationContactCol1Row4);
	layoutProjectContactEmailAddressValidate.addComponent(lblProjectContactEmailAddressValidateMessage);
	layoutProjectContactEmailAddressValidate.setComponentAlignment(lblProjectContactEmailAddressValidateMessage, Alignment.TOP_LEFT);

	layoutTechnicalContactNameValidate.addComponent(lblSepInformationContactCol1Row5);
	layoutTechnicalContactNameValidate.addComponent(lblTechnicalContactNameValidateMessage);
	layoutTechnicalContactNameValidate.setComponentAlignment(lblTechnicalContactNameValidateMessage, Alignment.TOP_LEFT);

	layoutTechnicalContactPhoneValidate.addComponent(lblSepInformationContactCol1Row6);
	layoutTechnicalContactPhoneValidate.addComponent(lblTechnicalContactPhoneValidateMessage);
	layoutTechnicalContactPhoneValidate.setComponentAlignment(lblTechnicalContactPhoneValidateMessage, Alignment.TOP_LEFT);

	layoutTechnicalContactMobileValidate.addComponent(lblSepInformationContactCol1Row7);
	layoutTechnicalContactMobileValidate.addComponent(lblTechnicalContactMobileValidateMessage);
	layoutTechnicalContactMobileValidate.setComponentAlignment(lblTechnicalContactMobileValidateMessage, Alignment.TOP_LEFT);

	layoutTechnicalContactEmailAddressValidate.addComponent(lblSepInformationContactCol1Row8);
	layoutTechnicalContactEmailAddressValidate.addComponent(lblTechnicalContactEmailAddressValidateMessage);
	layoutTechnicalContactEmailAddressValidate
		.setComponentAlignment(lblTechnicalContactEmailAddressValidateMessage, Alignment.TOP_LEFT);

	// col2
	layoutBlank1Validate.addComponent(lblSepInformationCol2Row1);
	layoutBlank1Validate.addComponent(lblBlank);
	layoutBlank1Validate.setComponentAlignment(lblBlank, Alignment.TOP_LEFT);

	layoutMerchantIdValidate.addComponent(lblSepInformationCol2Row2);
	layoutMerchantIdValidate.addComponent(lblMerchantIdValidateMessage);
	layoutMerchantIdValidate.setComponentAlignment(lblMerchantIdValidateMessage, Alignment.TOP_LEFT);

	layoutHostValidate.addComponent(lblSepInformationCol2Row3);
	layoutHostValidate.addComponent(lblHostValidateMessage);
	layoutHostValidate.setComponentAlignment(lblHostValidateMessage, Alignment.TOP_LEFT);

	layoutBankGuaranteeExpireDateValidate.addComponent(lblSepInformationCol2Row4);
	layoutBankGuaranteeExpireDateValidate.addComponent(lblBankGuaranteeExpireDateValidateMessage);
	layoutBankGuaranteeExpireDateValidate.setComponentAlignment(lblBankGuaranteeExpireDateValidateMessage, Alignment.TOP_LEFT);

	layoutLaunchedDateValidate.addComponent(lblSepInformationCol2Row5);
	layoutLaunchedDateValidate.addComponent(lblLaunchedDateValidateMessage);
	layoutLaunchedDateValidate.setComponentAlignment(lblLaunchedDateValidateMessage, Alignment.TOP_LEFT);

	layoutBlank2Validate.addComponent(lblSepInformationCol2Row6);
	layoutBlank2Validate.addComponent(lblBlank);
	layoutBlank2Validate.setComponentAlignment(lblBlank, Alignment.TOP_LEFT);

	layoutSuccessUrlValidate.addComponent(lblSepInformationCol2Row7);
	layoutSuccessUrlValidate.addComponent(lblSuccessUrlValidateMessage);
	layoutSuccessUrlValidate.setComponentAlignment(lblSuccessUrlValidateMessage, Alignment.TOP_LEFT);

	layoutCancelUrlValidate.addComponent(lblSepInformationCol2Row8);
	layoutCancelUrlValidate.addComponent(lblCancelUrlValidateMessage);
	layoutCancelUrlValidate.setComponentAlignment(lblCancelUrlValidateMessage, Alignment.TOP_LEFT);

	layoutBypassInvoiceAgingValidate.addComponent(lblSepPaymentServiceCol2Row1);
	layoutBypassInvoiceAgingValidate.addComponent(lblBypassInvoiceAgingValidateMessage);
	layoutBypassInvoiceAgingValidate.setComponentAlignment(lblBypassInvoiceAgingValidateMessage, Alignment.TOP_LEFT);

	layoutBankAccountNoValidate.addComponent(lblSepPaymentServiceCol2Row2);
	layoutBankAccountNoValidate.addComponent(lblBankAccountNoValidateMessage);
	layoutBankAccountNoValidate.setComponentAlignment(lblBankAccountNoValidateMessage, Alignment.TOP_LEFT);

	layoutSapApCodeValidate.addComponent(lblSepPaymentServiceCol2Row3);
	layoutSapApCodeValidate.addComponent(lblSapApCodeValidateMessage);
	layoutSapApCodeValidate.setComponentAlignment(lblSapApCodeValidateMessage, Alignment.TOP_LEFT);

	layoutMessageSlip2Validate.addComponent(lblSepPaymentServiceCol2Row4);
	layoutMessageSlip2Validate.addComponent(lblMessageSlip2ValidateMessage);
	layoutMessageSlip2Validate.setComponentAlignment(lblMessageSlip2ValidateMessage, Alignment.TOP_LEFT);

	layoutServiceFeeValidate.addComponent(lblSepPaymentServiceCol2Row5);
	layoutServiceFeeValidate.addComponent(lblServiceFeeValidateMessage);
	layoutServiceFeeValidate.setComponentAlignment(lblServiceFeeValidateMessage, Alignment.TOP_LEFT);

	layoutMonthlyLimitValidate.addComponent(lblSepPaymentLimitCol2Row1);
	layoutMonthlyLimitValidate.addComponent(lblMonthlyLimitValidateMessage);
	layoutMonthlyLimitValidate.setComponentAlignment(lblMonthlyLimitValidateMessage, Alignment.TOP_LEFT);

	layoutBlank3Validate.addComponent(lblSepPaymentLimitCol2Row2);
	layoutBlank3Validate.addComponent(lblBlank);
	layoutBlank3Validate.setComponentAlignment(lblBlank, Alignment.TOP_LEFT);

	layoutOperationContactNameValidate.addComponent(lblSepInformationContactCol2Row1);
	layoutOperationContactNameValidate.addComponent(lblOperationContactNameValidateMessage);
	layoutOperationContactNameValidate.setComponentAlignment(lblOperationContactNameValidateMessage, Alignment.TOP_LEFT);

	layoutOperationContactPhoneValidate.addComponent(lblSepInformationContactCol2Row2);
	layoutOperationContactPhoneValidate.addComponent(lblOperationContactPhoneValidateMessage);
	layoutOperationContactPhoneValidate.setComponentAlignment(lblOperationContactPhoneValidateMessage, Alignment.TOP_LEFT);

	layoutOperationContactMobileValidate.addComponent(lblSepInformationContactCol2Row3);
	layoutOperationContactMobileValidate.addComponent(lblOperationContactMobileValidateMessage);
	layoutOperationContactMobileValidate.setComponentAlignment(lblOperationContactMobileValidateMessage, Alignment.TOP_LEFT);

	layoutOperationContactEmailAddressValidate.addComponent(lblSepInformationContactCol2Row4);
	layoutOperationContactEmailAddressValidate.addComponent(lblOperationContactEmailAddressValidateMessage);
	layoutOperationContactEmailAddressValidate
		.setComponentAlignment(lblOperationContactEmailAddressValidateMessage, Alignment.TOP_LEFT);

	layoutFinancialContactNameValidate.addComponent(lblSepInformationContactCol2Row5);
	layoutFinancialContactNameValidate.addComponent(lblFinancialContactNameValidateMessage);
	layoutFinancialContactNameValidate.setComponentAlignment(lblFinancialContactNameValidateMessage, Alignment.TOP_LEFT);

	layoutFinancialContactPhoneValidate.addComponent(lblSepInformationContactCol2Row6);
	layoutFinancialContactPhoneValidate.addComponent(lblFinancialContactPhoneValidateMessage);
	layoutFinancialContactPhoneValidate.setComponentAlignment(lblFinancialContactPhoneValidateMessage, Alignment.TOP_LEFT);

	layoutFinancialContactMobileValidate.addComponent(lblSepInformationContactCol2Row7);
	layoutFinancialContactMobileValidate.addComponent(lblFinancialContactMobileValidateMessage);
	layoutFinancialContactMobileValidate.setComponentAlignment(lblFinancialContactMobileValidateMessage, Alignment.TOP_LEFT);

	layoutFinancialContactEmailAddressValidate.addComponent(lblSepInformationContactCol2Row8);
	layoutFinancialContactEmailAddressValidate.addComponent(lblFinancialContactEmailAddressValidateMessage);
	layoutFinancialContactEmailAddressValidate
		.setComponentAlignment(lblFinancialContactEmailAddressValidateMessage, Alignment.TOP_LEFT);

	lblBlank.setWidth("19px");
	lblBlank.setWidth("200px");
	lblServiceId.setWidth("200px");
	lblMerchantId.setWidth("200px");
	lblServiceStatus.setWidth("200px");
	lblHost.setWidth("200px");
	lblBankGuaranteeExpireDate.setWidth("200px");
	lblChequeName.setWidth("200px");
	lblLaunchedDate.setWidth("200px");
	lblInvoiceAging.setWidth("200px");
	lblInvoiceAgingSuffix.setWidth("50px");
	lblBankCodeAndName.setWidth("200px");
	lblBankAccountNo.setWidth("200px");
	lblSapArCode.setWidth("200px");
	lblSapApCode.setWidth("200px");
	lblMessageSlip1.setWidth("200px");
	lblMessageSlip2.setWidth("200px");
	lblMdr.setWidth("200px");
	lblMdrSuffix.setWidth("20px");
	lblServiceFee.setWidth("200px");
	lblServiceFeeSuffix.setWidth("100px");
	lblDailyLimit.setWidth("200px");
	lblMonthlyLimit.setWidth("200px");
	lblTransactionAmountLimit.setWidth("200px");
	lblDailyLimitSuffix.setWidth("100px");
	lblMonthlyLimitSuffix.setWidth("100px");
	lblTransactionAmountLimitSuffix.setWidth("100px");

	lblProjectTitle.setWidth("200px");
	lblProjectContactName.setWidth("200px");
	lblProjectContactPhone.setWidth("200px");
	lblProjectContactMobile.setWidth("200px");
	lblProjectContactEmailAddress.setWidth("200px");

	lblOperationTitle.setWidth("200px");
	lblOperationContactName.setWidth("200px");
	lblOperationContactPhone.setWidth("200px");
	lblOperationContactMobile.setWidth("200px");
	lblOperationContactEmailAddress.setWidth("200px");

	lblTechnicalTitle.setWidth("200px");
	lblTechnicalContactName.setWidth("200px");
	lblTechnicalContactPhone.setWidth("200px");
	lblTechnicalContactMobile.setWidth("200px");
	lblTechnicalContactEmailAddress.setWidth("200px");

	lblFinancialTitle.setWidth("200px");
	lblFinancialContactName.setWidth("200px");
	lblFinancialContactPhone.setWidth("200px");
	lblFinancialContactMobile.setWidth("200px");
	lblFinancialContactEmailAddress.setWidth("200px");

	cbIsTestService.setWidth("400px");
	txtServiceId.setWidth("200px");
	cbbMerchantId.setWidth("200px");
	cbbServiceStatus.setWidth("200px");
	cbbHost.setWidth("200px");
	cbIsBankGuarantee.setWidth("200px");
	txtBankGuarantee.setWidth("200px");
	pdfBankGuaranteeExpireDate.setWidth("200px");
	txtChequeName.setWidth("200px");
	pdfLaunchedDate.setWidth("200px");
	cbIsResponseUrlBack.setWidth("200px");
	txtResponseUrlBack.setWidth("200px");
	cbIsSuccessUrl.setWidth("200px");
	txtSuccessUrl.setWidth("200px");
	cbIsFailUrl.setWidth("200px");
	txtFailUrl.setWidth("200px");
	cbIsCancelUrl.setWidth("200px");
	txtCancelUrl.setWidth("200px");
	cbIsNotifyCustomer.setWidth("400px");
	txtInvoiceAging.setWidth("150px");
	cbIsBypassInvoiceAging.setWidth("400px");
	cbbBankCodeAndName.setWidth("200px");
	txtBankAccountNo.setWidth("200px");
	txtSapArCode.setWidth("200px");
	txtSapApCode.setWidth("200px");
	txtMessageSlip1.setWidth("200px");
	txtMessageSlip2.setWidth("200px");
	txtMdr.setWidth("180px");
	txtServiceFee.setWidth("100px");
	txtDailyLimit.setWidth("100px");
	txtMonthlyLimit.setWidth("100px");
	txtTransactionAmountLimit.setWidth("100px");

	txtProjectContactName.setWidth("200px");
	txtProjectContactPhone.setWidth("200px");
	txtProjectContactMobile.setWidth("200px");
	txtProjectContactEmailAddress.setWidth("200px");

	txtOperationContactName.setWidth("200px");
	txtOperationContactPhone.setWidth("200px");
	txtOperationContactMobile.setWidth("200px");
	txtOperationContactEmailAddress.setWidth("200px");

	txtTechnicalContactName.setWidth("200px");
	txtTechnicalContactPhone.setWidth("200px");
	txtTechnicalContactMobile.setWidth("200px");
	txtTechnicalContactEmailAddress.setWidth("200px");

	txtFinancialContactName.setWidth("200px");
	txtFinancialContactPhone.setWidth("200px");
	txtFinancialContactMobile.setWidth("200px");
	txtFinancialContactEmailAddress.setWidth("200px");

	this.btnSave.addStyleName("button-blue");
	this.btnCancel.addStyleName("button-red");

	this.btnSave.setDisableOnClick(true);
	this.btnCancel.setDisableOnClick(true);

	this.btnSave.setWidth("70px");
	this.btnCancel.setWidth("70px");

	this.cbbMerchantId.setFilteringMode(FilteringMode.STARTSWITH);
	this.cbbMerchantId.setNewItemsAllowed(false);
	this.cbbMerchantId.setNullSelectionAllowed(false);

	this.pdfBankGuaranteeExpireDate.setResolution(Resolution.MONTH);
	this.pdfBankGuaranteeExpireDate.setInvalidAllowed(false);
	this.pdfLaunchedDate.setInvalidAllowed(false);
	// this.pdfBankGuaranteeExpireDate.setLenient(false);
	// this.pdfLaunchedDate.setLenient(false);

	VerticalLayout mainLayout = new VerticalLayout();
	mainLayout.setSizeFull();
	mainLayout.setSizeUndefined();
	mainLayout.setWidth("100%");

	VerticalLayout serviceInformationLayout = new VerticalLayout();
	serviceInformationLayout.setSizeFull();
	serviceInformationLayout.setSizeUndefined();
	serviceInformationLayout.setSpacing(true);
	serviceInformationLayout.setWidth("100%");

	VerticalLayout paymentServiceLayout = new VerticalLayout();
	paymentServiceLayout.setSizeFull();
	paymentServiceLayout.setSizeUndefined();
	paymentServiceLayout.setSpacing(true);
	paymentServiceLayout.setWidth("100%");

	VerticalLayout paymentLimitLayout = new VerticalLayout();
	paymentLimitLayout.setSizeFull();
	paymentLimitLayout.setSizeUndefined();
	paymentLimitLayout.setSpacing(true);
	paymentLimitLayout.setWidth("100%");

	VerticalLayout serviceContactLayout = new VerticalLayout();
	serviceContactLayout.setSizeFull();
	serviceContactLayout.setSizeUndefined();
	serviceContactLayout.setSpacing(true);
	serviceContactLayout.setWidth("100%");

	HorizontalLayout commandLayout = new HorizontalLayout();
	commandLayout.setSizeUndefined();
	commandLayout.setSpacing(true);

	this.serviceInformationPanel.setContent(serviceInformationLayout);
	this.paymentServicePanel.setContent(paymentServiceLayout);
	this.paymentLimitPanel.setContent(paymentLimitLayout);
	this.serviceContactPersonPanel.setContent(serviceContactLayout);
	this.editCashServiceProfilePanel.setContent(mainLayout);

	VerticalLayout formServiceInformationLayout = new VerticalLayout();
	formServiceInformationLayout.setId("formInformationLayout");
	formServiceInformationLayout.setSizeUndefined();
	formServiceInformationLayout.setWidth("100%");
	formServiceInformationLayout.setSpacing(true);

	HorizontalLayout serviceInformationRow = new HorizontalLayout();

	serviceInformationRow.setSpacing(true);
	serviceInformationRow.setSizeUndefined();

	VerticalLayout serviceInformationCol1Layout = new VerticalLayout();
	VerticalLayout serviceInformationCol2Layout = new VerticalLayout();

	serviceInformationCol1Layout.setSizeUndefined();
	serviceInformationCol1Layout.setWidth("100%");
	serviceInformationCol1Layout.setSpacing(true);

	serviceInformationCol2Layout.setSizeUndefined();
	serviceInformationCol2Layout.setWidth("100%");
	serviceInformationCol2Layout.setSpacing(true);

	HorizontalLayout serviceInformationCol1Row1 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol1Row2 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol1Row3 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol1Row4 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol1Row5 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol1Row6 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol1Row7 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol1Row8 = new HorizontalLayout();

	HorizontalLayout serviceInformationCol2Row1 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol2Row2 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol2Row3 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol2Row4 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol2Row5 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol2Row6 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol2Row7 = new HorizontalLayout();
	HorizontalLayout serviceInformationCol2Row8 = new HorizontalLayout();

	serviceInformationCol1Row1.setSpacing(true);
	serviceInformationCol1Row2.setSpacing(true);
	serviceInformationCol1Row3.setSpacing(true);
	serviceInformationCol1Row4.setSpacing(true);
	serviceInformationCol1Row5.setSpacing(true);
	serviceInformationCol1Row6.setSpacing(true);
	serviceInformationCol1Row7.setSpacing(true);
	serviceInformationCol1Row8.setSpacing(true);

	serviceInformationCol1Row1.setSizeUndefined();
	serviceInformationCol1Row2.setSizeUndefined();
	serviceInformationCol1Row3.setSizeUndefined();
	serviceInformationCol1Row4.setSizeUndefined();
	serviceInformationCol1Row5.setSizeUndefined();
	serviceInformationCol1Row6.setSizeUndefined();
	serviceInformationCol1Row7.setSizeUndefined();
	serviceInformationCol1Row8.setSizeUndefined();

	serviceInformationCol2Row1.setSpacing(true);
	serviceInformationCol2Row2.setSpacing(true);
	serviceInformationCol2Row3.setSpacing(true);
	serviceInformationCol2Row4.setSpacing(true);
	serviceInformationCol2Row5.setSpacing(true);
	serviceInformationCol2Row6.setSpacing(true);
	serviceInformationCol2Row7.setSpacing(true);
	serviceInformationCol2Row8.setSpacing(true);

	serviceInformationCol2Row1.setSizeUndefined();
	serviceInformationCol2Row2.setSizeUndefined();
	serviceInformationCol2Row3.setSizeUndefined();
	serviceInformationCol2Row4.setSizeUndefined();
	serviceInformationCol2Row5.setSizeUndefined();
	serviceInformationCol2Row6.setSizeUndefined();
	serviceInformationCol2Row7.setSizeUndefined();
	serviceInformationCol2Row8.setSizeUndefined();

	// col1
	serviceInformationCol1Row1.addComponent(cbIsTestService);
	serviceInformationCol1Row1.setComponentAlignment(cbIsTestService, Alignment.MIDDLE_LEFT);

	serviceInformationCol1Row2.addComponent(lblServiceId);
	serviceInformationCol1Row2.addComponent(txtServiceId);
	serviceInformationCol1Row2.setComponentAlignment(lblServiceId, Alignment.MIDDLE_LEFT);
	serviceInformationCol1Row2.setComponentAlignment(txtServiceId, Alignment.MIDDLE_LEFT);

	serviceInformationCol1Row3.addComponent(lblServiceStatus);
	serviceInformationCol1Row3.addComponent(cbbServiceStatus);
	serviceInformationCol1Row3.setComponentAlignment(lblServiceStatus, Alignment.MIDDLE_LEFT);
	serviceInformationCol1Row3.setComponentAlignment(cbbServiceStatus, Alignment.MIDDLE_LEFT);

	serviceInformationCol1Row4.addComponent(cbIsBankGuarantee);
	serviceInformationCol1Row4.addComponent(txtBankGuarantee);
	serviceInformationCol1Row4.setComponentAlignment(cbIsBankGuarantee, Alignment.MIDDLE_LEFT);
	serviceInformationCol1Row4.setComponentAlignment(txtBankGuarantee, Alignment.MIDDLE_LEFT);

	serviceInformationCol1Row5.addComponent(lblChequeName);
	serviceInformationCol1Row5.addComponent(txtChequeName);
	serviceInformationCol1Row5.setComponentAlignment(lblChequeName, Alignment.MIDDLE_LEFT);
	serviceInformationCol1Row5.setComponentAlignment(txtChequeName, Alignment.MIDDLE_LEFT);

	serviceInformationCol1Row6.addComponent(cbIsNotifyCustomer);
	serviceInformationCol1Row6.setComponentAlignment(cbIsNotifyCustomer, Alignment.MIDDLE_LEFT);

	serviceInformationCol1Row7.addComponent(cbIsResponseUrlBack);
	serviceInformationCol1Row7.addComponent(txtResponseUrlBack);
	serviceInformationCol1Row7.setComponentAlignment(cbIsResponseUrlBack, Alignment.MIDDLE_LEFT);
	serviceInformationCol1Row7.setComponentAlignment(txtResponseUrlBack, Alignment.MIDDLE_LEFT);

	serviceInformationCol1Row8.addComponent(cbIsFailUrl);
	serviceInformationCol1Row8.addComponent(txtFailUrl);
	serviceInformationCol1Row8.setComponentAlignment(cbIsFailUrl, Alignment.MIDDLE_LEFT);
	serviceInformationCol1Row8.setComponentAlignment(txtFailUrl, Alignment.MIDDLE_LEFT);

	// col2
	serviceInformationCol2Row1.setHeight("19px");
	serviceInformationCol2Row1.addComponent(lblBlank);
	serviceInformationCol2Row1.addComponent(lblBlank);
	serviceInformationCol2Row1.setComponentAlignment(lblBlank, Alignment.MIDDLE_LEFT);
	serviceInformationCol2Row1.setComponentAlignment(lblBlank, Alignment.MIDDLE_LEFT);

	serviceInformationCol2Row2.addComponent(lblMerchantId);
	serviceInformationCol2Row2.addComponent(cbbMerchantId);
	serviceInformationCol2Row2.setComponentAlignment(lblMerchantId, Alignment.MIDDLE_LEFT);
	serviceInformationCol2Row2.setComponentAlignment(cbbMerchantId, Alignment.MIDDLE_LEFT);

	serviceInformationCol2Row3.addComponent(lblHost);
	serviceInformationCol2Row3.addComponent(cbbHost);
	serviceInformationCol2Row3.setComponentAlignment(lblHost, Alignment.MIDDLE_LEFT);
	serviceInformationCol2Row3.setComponentAlignment(cbbHost, Alignment.MIDDLE_LEFT);

	serviceInformationCol2Row4.addComponent(lblBankGuaranteeExpireDate);
	serviceInformationCol2Row4.addComponent(pdfBankGuaranteeExpireDate);
	serviceInformationCol2Row4.setComponentAlignment(lblBankGuaranteeExpireDate, Alignment.MIDDLE_LEFT);
	serviceInformationCol2Row4.setComponentAlignment(pdfBankGuaranteeExpireDate, Alignment.MIDDLE_LEFT);

	serviceInformationCol2Row5.addComponent(lblLaunchedDate);
	serviceInformationCol2Row5.addComponent(pdfLaunchedDate);
	serviceInformationCol2Row5.setComponentAlignment(lblLaunchedDate, Alignment.MIDDLE_LEFT);
	serviceInformationCol2Row5.setComponentAlignment(pdfLaunchedDate, Alignment.MIDDLE_LEFT);

	serviceInformationCol2Row6.setHeight("19px");
	serviceInformationCol2Row6.addComponent(lblBlank);
	serviceInformationCol2Row6.addComponent(lblBlank);
	serviceInformationCol2Row6.setComponentAlignment(lblBlank, Alignment.MIDDLE_LEFT);
	serviceInformationCol2Row6.setComponentAlignment(lblBlank, Alignment.MIDDLE_LEFT);

	serviceInformationCol2Row7.addComponent(cbIsSuccessUrl);
	serviceInformationCol2Row7.addComponent(txtSuccessUrl);
	serviceInformationCol2Row7.setComponentAlignment(cbIsSuccessUrl, Alignment.MIDDLE_LEFT);
	serviceInformationCol2Row7.setComponentAlignment(txtSuccessUrl, Alignment.MIDDLE_LEFT);

	serviceInformationCol2Row8.addComponent(cbIsCancelUrl);
	serviceInformationCol2Row8.addComponent(txtCancelUrl);
	serviceInformationCol2Row8.setComponentAlignment(cbIsCancelUrl, Alignment.MIDDLE_LEFT);
	serviceInformationCol2Row8.setComponentAlignment(txtCancelUrl, Alignment.MIDDLE_LEFT);

	serviceInformationCol1Layout.addComponent(serviceInformationCol1Row1);
	serviceInformationCol1Layout.addComponent(layoutIsTestServiceValidate);
	serviceInformationCol1Layout.addComponent(serviceInformationCol1Row2);
	serviceInformationCol1Layout.addComponent(layoutServiceIdValidate);
	serviceInformationCol1Layout.addComponent(serviceInformationCol1Row3);
	serviceInformationCol1Layout.addComponent(layoutServiceStatusValidate);
	serviceInformationCol1Layout.addComponent(serviceInformationCol1Row4);
	serviceInformationCol1Layout.addComponent(layoutBankGuaranteeValidate);
	serviceInformationCol1Layout.addComponent(serviceInformationCol1Row5);
	serviceInformationCol1Layout.addComponent(layoutChequeNameValidate);
	serviceInformationCol1Layout.addComponent(serviceInformationCol1Row6);
	serviceInformationCol1Layout.addComponent(layoutNotifyCustomerValidate);
	serviceInformationCol1Layout.addComponent(serviceInformationCol1Row7);
	serviceInformationCol1Layout.addComponent(layoutResponseUrlBackValidate);
	serviceInformationCol1Layout.addComponent(serviceInformationCol1Row8);
	serviceInformationCol1Layout.addComponent(layoutFailUrlValidate);

	serviceInformationCol2Layout.addComponent(serviceInformationCol2Row1);
	serviceInformationCol2Layout.addComponent(layoutBlank1Validate);
	serviceInformationCol2Layout.addComponent(serviceInformationCol2Row2);
	serviceInformationCol2Layout.addComponent(layoutMerchantIdValidate);
	serviceInformationCol2Layout.addComponent(serviceInformationCol2Row3);
	serviceInformationCol2Layout.addComponent(layoutHostValidate);
	serviceInformationCol2Layout.addComponent(serviceInformationCol2Row4);
	serviceInformationCol2Layout.addComponent(layoutBankGuaranteeExpireDateValidate);
	serviceInformationCol2Layout.addComponent(serviceInformationCol2Row5);
	serviceInformationCol2Layout.addComponent(layoutLaunchedDateValidate);
	serviceInformationCol2Layout.addComponent(serviceInformationCol2Row6);
	serviceInformationCol2Layout.addComponent(layoutBlank2Validate);
	serviceInformationCol2Layout.addComponent(serviceInformationCol2Row7);
	serviceInformationCol2Layout.addComponent(layoutSuccessUrlValidate);
	serviceInformationCol2Layout.addComponent(serviceInformationCol2Row8);
	serviceInformationCol2Layout.addComponent(layoutCancelUrlValidate);

	Label lblSepInformationCol = new Label();
	lblSepInformationCol.setWidth("40px");

	serviceInformationRow.addComponent(serviceInformationCol1Layout);
	serviceInformationRow.addComponent(lblSepInformationCol);
	serviceInformationRow.addComponent(serviceInformationCol2Layout);

	formServiceInformationLayout.addComponent(serviceInformationRow);
	formServiceInformationLayout.setComponentAlignment(serviceInformationRow, Alignment.MIDDLE_CENTER);

	serviceInformationLayout.addComponent(new HorizontalLayout());
	serviceInformationLayout.addComponent(formServiceInformationLayout);
	serviceInformationLayout.addComponent(new HorizontalLayout());
	serviceInformationLayout.setComponentAlignment(formServiceInformationLayout, Alignment.MIDDLE_CENTER);

	// payment service
	VerticalLayout formPaymentServiceLayout = new VerticalLayout();
	formPaymentServiceLayout.setId("formPaymentServiceLayout");
	formPaymentServiceLayout.setSizeUndefined();
	formPaymentServiceLayout.setWidth("100%");
	formPaymentServiceLayout.setSpacing(true);

	HorizontalLayout paymentServiceRow = new HorizontalLayout();

	paymentServiceRow.setSpacing(true);
	paymentServiceRow.setSizeUndefined();

	VerticalLayout paymentServiceCol1Layout = new VerticalLayout();
	VerticalLayout paymentServiceCol2Layout = new VerticalLayout();

	paymentServiceCol1Layout.setSizeUndefined();
	paymentServiceCol1Layout.setWidth("100%");
	paymentServiceCol1Layout.setSpacing(true);

	paymentServiceCol2Layout.setSizeUndefined();
	paymentServiceCol2Layout.setWidth("100%");
	paymentServiceCol2Layout.setSpacing(true);

	HorizontalLayout paymentServiceCol1Row1 = new HorizontalLayout();
	HorizontalLayout paymentServiceCol1Row2 = new HorizontalLayout();
	HorizontalLayout paymentServiceCol1Row3 = new HorizontalLayout();
	HorizontalLayout paymentServiceCol1Row4 = new HorizontalLayout();
	HorizontalLayout paymentServiceCol1Row5 = new HorizontalLayout();

	HorizontalLayout paymentServiceCol2Row1 = new HorizontalLayout();
	HorizontalLayout paymentServiceCol2Row2 = new HorizontalLayout();
	HorizontalLayout paymentServiceCol2Row3 = new HorizontalLayout();
	HorizontalLayout paymentServiceCol2Row4 = new HorizontalLayout();
	HorizontalLayout paymentServiceCol2Row5 = new HorizontalLayout();

	paymentServiceCol1Row1.setSpacing(true);
	paymentServiceCol1Row2.setSpacing(true);
	paymentServiceCol1Row3.setSpacing(true);
	paymentServiceCol1Row4.setSpacing(true);
	paymentServiceCol1Row5.setSpacing(true);

	paymentServiceCol1Row1.setSizeUndefined();
	paymentServiceCol1Row2.setSizeUndefined();
	paymentServiceCol1Row3.setSizeUndefined();
	paymentServiceCol1Row4.setSizeUndefined();
	paymentServiceCol1Row5.setSizeUndefined();

	paymentServiceCol2Row1.setSpacing(true);
	paymentServiceCol2Row2.setSpacing(true);
	paymentServiceCol2Row3.setSpacing(true);
	paymentServiceCol2Row4.setSpacing(true);
	paymentServiceCol2Row5.setSpacing(true);

	paymentServiceCol2Row1.setSizeUndefined();
	paymentServiceCol2Row2.setSizeUndefined();
	paymentServiceCol2Row3.setSizeUndefined();
	paymentServiceCol2Row4.setSizeUndefined();
	paymentServiceCol2Row5.setSizeUndefined();

	// col1
	paymentServiceCol1Row1.addComponent(lblInvoiceAging);
	paymentServiceCol1Row1.addComponent(txtInvoiceAging);
	paymentServiceCol1Row1.addComponent(lblInvoiceAgingSuffix);
	paymentServiceCol1Row1.setComponentAlignment(lblInvoiceAging, Alignment.MIDDLE_LEFT);
	paymentServiceCol1Row1.setComponentAlignment(txtInvoiceAging, Alignment.MIDDLE_LEFT);
	paymentServiceCol1Row1.setComponentAlignment(lblInvoiceAgingSuffix, Alignment.MIDDLE_LEFT);

	paymentServiceCol1Row2.addComponent(lblBankCodeAndName);
	paymentServiceCol1Row2.addComponent(cbbBankCodeAndName);
	paymentServiceCol1Row2.setComponentAlignment(lblBankCodeAndName, Alignment.MIDDLE_LEFT);
	paymentServiceCol1Row2.setComponentAlignment(cbbBankCodeAndName, Alignment.MIDDLE_LEFT);

	paymentServiceCol1Row3.addComponent(lblSapArCode);
	paymentServiceCol1Row3.addComponent(txtSapArCode);
	paymentServiceCol1Row3.setComponentAlignment(lblSapArCode, Alignment.MIDDLE_LEFT);
	paymentServiceCol1Row3.setComponentAlignment(txtSapArCode, Alignment.MIDDLE_LEFT);

	paymentServiceCol1Row4.addComponent(lblMessageSlip1);
	paymentServiceCol1Row4.addComponent(txtMessageSlip1);
	paymentServiceCol1Row4.setComponentAlignment(lblMessageSlip1, Alignment.MIDDLE_LEFT);
	paymentServiceCol1Row4.setComponentAlignment(txtMessageSlip1, Alignment.MIDDLE_LEFT);

	paymentServiceCol1Row5.addComponent(lblMdr);
	paymentServiceCol1Row5.addComponent(txtMdr);
	paymentServiceCol1Row5.addComponent(lblMdrSuffix);
	paymentServiceCol1Row5.setComponentAlignment(lblMdr, Alignment.MIDDLE_LEFT);
	paymentServiceCol1Row5.setComponentAlignment(txtMdr, Alignment.MIDDLE_LEFT);
	paymentServiceCol1Row5.setComponentAlignment(lblMdrSuffix, Alignment.MIDDLE_LEFT);

	// col2
	paymentServiceCol2Row1.addComponent(cbIsBypassInvoiceAging);
	paymentServiceCol2Row1.setComponentAlignment(cbIsBypassInvoiceAging, Alignment.MIDDLE_LEFT);

	paymentServiceCol2Row2.addComponent(lblBankAccountNo);
	paymentServiceCol2Row2.addComponent(txtBankAccountNo);
	paymentServiceCol2Row2.setComponentAlignment(lblBankAccountNo, Alignment.MIDDLE_LEFT);
	paymentServiceCol2Row2.setComponentAlignment(txtBankAccountNo, Alignment.MIDDLE_LEFT);

	paymentServiceCol2Row3.addComponent(lblSapApCode);
	paymentServiceCol2Row3.addComponent(txtSapApCode);
	paymentServiceCol2Row3.setComponentAlignment(lblSapApCode, Alignment.MIDDLE_LEFT);
	paymentServiceCol2Row3.setComponentAlignment(txtSapApCode, Alignment.MIDDLE_LEFT);

	paymentServiceCol2Row4.addComponent(lblMessageSlip2);
	paymentServiceCol2Row4.addComponent(txtMessageSlip2);
	paymentServiceCol2Row4.setComponentAlignment(lblMessageSlip2, Alignment.MIDDLE_LEFT);
	paymentServiceCol2Row4.setComponentAlignment(txtMessageSlip2, Alignment.MIDDLE_LEFT);

	paymentServiceCol2Row5.addComponent(lblServiceFee);
	paymentServiceCol2Row5.addComponent(txtServiceFee);
	paymentServiceCol2Row5.addComponent(lblServiceFeeSuffix);
	paymentServiceCol2Row5.setComponentAlignment(lblServiceFee, Alignment.MIDDLE_LEFT);
	paymentServiceCol2Row5.setComponentAlignment(txtServiceFee, Alignment.MIDDLE_LEFT);
	paymentServiceCol2Row5.setComponentAlignment(lblServiceFeeSuffix, Alignment.MIDDLE_LEFT);

	paymentServiceCol1Layout.addComponent(paymentServiceCol1Row1);
	paymentServiceCol1Layout.addComponent(layoutInvoiceAgingValidate);
	paymentServiceCol1Layout.addComponent(paymentServiceCol1Row2);
	paymentServiceCol1Layout.addComponent(layoutBankCodeAndNameValidate);
	paymentServiceCol1Layout.addComponent(paymentServiceCol1Row3);
	paymentServiceCol1Layout.addComponent(layoutSapArCodeValidate);
	paymentServiceCol1Layout.addComponent(paymentServiceCol1Row4);
	paymentServiceCol1Layout.addComponent(layoutMessageSlip1Validate);
	paymentServiceCol1Layout.addComponent(paymentServiceCol1Row5);
	paymentServiceCol1Layout.addComponent(layoutMdrValidate);

	paymentServiceCol2Layout.addComponent(paymentServiceCol2Row1);
	paymentServiceCol2Layout.addComponent(layoutBypassInvoiceAgingValidate);
	paymentServiceCol2Layout.addComponent(paymentServiceCol2Row2);
	paymentServiceCol2Layout.addComponent(layoutBankAccountNoValidate);
	paymentServiceCol2Layout.addComponent(paymentServiceCol2Row3);
	paymentServiceCol2Layout.addComponent(layoutSapArCodeValidate);
	paymentServiceCol2Layout.addComponent(paymentServiceCol2Row4);
	paymentServiceCol2Layout.addComponent(layoutMessageSlip2Validate);
	paymentServiceCol2Layout.addComponent(paymentServiceCol2Row5);
	paymentServiceCol2Layout.addComponent(layoutServiceFeeValidate);

	Label lblSepPaymentServiceCol = new Label();
	lblSepPaymentServiceCol.setWidth("40px");

	paymentServiceRow.addComponent(paymentServiceCol1Layout);
	paymentServiceRow.addComponent(lblSepPaymentServiceCol);
	paymentServiceRow.addComponent(paymentServiceCol2Layout);

	formPaymentServiceLayout.addComponent(paymentServiceRow);
	formPaymentServiceLayout.setComponentAlignment(paymentServiceRow, Alignment.MIDDLE_CENTER);

	paymentServiceLayout.addComponent(new HorizontalLayout());
	paymentServiceLayout.addComponent(formPaymentServiceLayout);
	paymentServiceLayout.addComponent(new HorizontalLayout());
	paymentServiceLayout.setComponentAlignment(formPaymentServiceLayout, Alignment.MIDDLE_CENTER);

	// payment limit
	VerticalLayout formPaymentLimitLayout = new VerticalLayout();
	formPaymentLimitLayout.setId("formPaymentLimitLayout");
	formPaymentLimitLayout.setSizeUndefined();
	formPaymentLimitLayout.setWidth("100%");
	formPaymentLimitLayout.setSpacing(true);

	HorizontalLayout paymentLimitRow = new HorizontalLayout();

	paymentLimitRow.setSpacing(true);
	paymentLimitRow.setSizeUndefined();

	VerticalLayout paymentLimitCol1Layout = new VerticalLayout();
	VerticalLayout paymentLimitCol2Layout = new VerticalLayout();

	paymentLimitCol1Layout.setSizeUndefined();
	paymentLimitCol1Layout.setWidth("100%");
	paymentLimitCol1Layout.setSpacing(true);

	paymentLimitCol2Layout.setSizeUndefined();
	paymentLimitCol2Layout.setWidth("100%");
	paymentLimitCol2Layout.setSpacing(true);

	HorizontalLayout paymentLimitCol1Row1 = new HorizontalLayout();
	HorizontalLayout paymentLimitCol1Row2 = new HorizontalLayout();

	HorizontalLayout paymentLimitCol2Row1 = new HorizontalLayout();
	HorizontalLayout paymentLimitCol2Row2 = new HorizontalLayout();

	paymentLimitCol1Row1.setSpacing(true);
	paymentLimitCol1Row2.setSpacing(true);

	paymentLimitCol1Row1.setSizeUndefined();
	paymentLimitCol1Row2.setSizeUndefined();

	paymentLimitCol2Row1.setSpacing(true);
	paymentLimitCol2Row2.setSpacing(true);

	paymentLimitCol2Row1.setSizeUndefined();
	paymentLimitCol2Row2.setSizeUndefined();

	// col1
	paymentLimitCol1Row1.addComponent(lblDailyLimit);
	paymentLimitCol1Row1.addComponent(txtDailyLimit);
	paymentLimitCol1Row1.addComponent(lblDailyLimitSuffix);
	paymentLimitCol1Row1.setComponentAlignment(lblDailyLimit, Alignment.MIDDLE_LEFT);
	paymentLimitCol1Row1.setComponentAlignment(txtDailyLimit, Alignment.MIDDLE_LEFT);
	paymentLimitCol1Row1.setComponentAlignment(lblDailyLimitSuffix, Alignment.MIDDLE_LEFT);

	paymentLimitCol1Row2.addComponent(lblTransactionAmountLimit);
	paymentLimitCol1Row2.addComponent(txtTransactionAmountLimit);
	paymentLimitCol1Row2.addComponent(lblTransactionAmountLimitSuffix);
	paymentLimitCol1Row2.setComponentAlignment(lblTransactionAmountLimit, Alignment.MIDDLE_LEFT);
	paymentLimitCol1Row2.setComponentAlignment(txtTransactionAmountLimit, Alignment.MIDDLE_LEFT);
	paymentLimitCol1Row2.setComponentAlignment(lblTransactionAmountLimitSuffix, Alignment.MIDDLE_LEFT);

	// col2
	paymentLimitCol2Row1.addComponent(lblMonthlyLimit);
	paymentLimitCol2Row1.addComponent(txtMonthlyLimit);
	paymentLimitCol2Row1.addComponent(lblMonthlyLimitSuffix);
	paymentLimitCol2Row1.setComponentAlignment(lblMonthlyLimit, Alignment.MIDDLE_LEFT);
	paymentLimitCol2Row1.setComponentAlignment(txtMonthlyLimit, Alignment.MIDDLE_LEFT);
	paymentLimitCol2Row1.setComponentAlignment(lblMonthlyLimitSuffix, Alignment.MIDDLE_LEFT);

	paymentLimitCol2Row2.setHeight("19px");
	paymentLimitCol2Row2.addComponent(lblBlank);
	paymentLimitCol2Row2.addComponent(lblBlank);
	paymentLimitCol2Row2.setComponentAlignment(lblBlank, Alignment.MIDDLE_LEFT);
	paymentLimitCol2Row2.setComponentAlignment(lblBlank, Alignment.MIDDLE_LEFT);

	paymentLimitCol1Layout.addComponent(paymentLimitCol1Row1);
	paymentLimitCol1Layout.addComponent(layoutDailyLimitValidate);
	paymentLimitCol1Layout.addComponent(paymentLimitCol1Row2);
	paymentLimitCol1Layout.addComponent(layoutTransactionAmountLimitValidate);

	paymentLimitCol2Layout.addComponent(paymentLimitCol2Row1);
	paymentLimitCol2Layout.addComponent(layoutMonthlyLimitValidate);
	paymentLimitCol2Layout.addComponent(paymentLimitCol2Row2);
	paymentLimitCol2Layout.addComponent(layoutBlank3Validate);

	Label lblSepPaymentLimitCol = new Label();
	lblSepPaymentLimitCol.setWidth("40px");

	paymentLimitRow.addComponent(paymentLimitCol1Layout);
	paymentLimitRow.addComponent(lblSepPaymentLimitCol);
	paymentLimitRow.addComponent(paymentLimitCol2Layout);

	formPaymentLimitLayout.addComponent(paymentLimitRow);
	formPaymentLimitLayout.setComponentAlignment(paymentLimitRow, Alignment.MIDDLE_CENTER);

	paymentLimitLayout.addComponent(new HorizontalLayout());
	paymentLimitLayout.addComponent(formPaymentLimitLayout);
	paymentLimitLayout.addComponent(new HorizontalLayout());
	paymentLimitLayout.setComponentAlignment(formPaymentLimitLayout, Alignment.MIDDLE_CENTER);

	// contact
	HorizontalLayout contactRow = new HorizontalLayout();
	contactRow.setSizeUndefined();
	contactRow.setSpacing(true);

	VerticalLayout contactCol1Layout = new VerticalLayout();
	VerticalLayout contactCol2Layout = new VerticalLayout();

	contactCol1Layout.setSizeUndefined();
	contactCol1Layout.setWidth("100%");
	contactCol1Layout.setSpacing(true);

	contactCol2Layout.setSizeUndefined();
	contactCol2Layout.setWidth("100%");
	contactCol2Layout.setSpacing(true);

	HorizontalLayout contactCol1Row1 = new HorizontalLayout();
	HorizontalLayout contactCol1Row2 = new HorizontalLayout();
	HorizontalLayout contactCol1Row3 = new HorizontalLayout();
	HorizontalLayout contactCol1Row4 = new HorizontalLayout();
	HorizontalLayout contactCol1Row5 = new HorizontalLayout();
	HorizontalLayout contactCol1Row6 = new HorizontalLayout();
	HorizontalLayout contactCol1Row7 = new HorizontalLayout();
	HorizontalLayout contactCol1Row8 = new HorizontalLayout();
	HorizontalLayout contactCol1Row9 = new HorizontalLayout();
	HorizontalLayout contactCol1Row10 = new HorizontalLayout();

	HorizontalLayout contactCol2Row1 = new HorizontalLayout();
	HorizontalLayout contactCol2Row2 = new HorizontalLayout();
	HorizontalLayout contactCol2Row3 = new HorizontalLayout();
	HorizontalLayout contactCol2Row4 = new HorizontalLayout();
	HorizontalLayout contactCol2Row5 = new HorizontalLayout();
	HorizontalLayout contactCol2Row6 = new HorizontalLayout();
	HorizontalLayout contactCol2Row7 = new HorizontalLayout();
	HorizontalLayout contactCol2Row8 = new HorizontalLayout();
	HorizontalLayout contactCol2Row9 = new HorizontalLayout();
	HorizontalLayout contactCol2Row10 = new HorizontalLayout();

	contactCol1Row1.setSpacing(true);
	contactCol1Row2.setSpacing(true);
	contactCol1Row3.setSpacing(true);
	contactCol1Row4.setSpacing(true);
	contactCol1Row5.setSpacing(true);
	contactCol1Row6.setSpacing(true);
	contactCol1Row7.setSpacing(true);
	contactCol1Row8.setSpacing(true);
	contactCol1Row9.setSpacing(true);
	contactCol1Row10.setSpacing(true);

	contactCol1Row1.setSizeUndefined();
	contactCol1Row2.setSizeUndefined();
	contactCol1Row3.setSizeUndefined();
	contactCol1Row4.setSizeUndefined();
	contactCol1Row5.setSizeUndefined();
	contactCol1Row6.setSizeUndefined();
	contactCol1Row7.setSizeUndefined();
	contactCol1Row8.setSizeUndefined();
	contactCol1Row9.setSizeUndefined();
	contactCol1Row10.setSizeUndefined();

	contactCol2Row1.setSpacing(true);
	contactCol2Row2.setSpacing(true);
	contactCol2Row3.setSpacing(true);
	contactCol2Row4.setSpacing(true);
	contactCol2Row5.setSpacing(true);
	contactCol2Row6.setSpacing(true);
	contactCol2Row7.setSpacing(true);
	contactCol2Row8.setSpacing(true);
	contactCol2Row9.setSpacing(true);
	contactCol2Row10.setSpacing(true);

	contactCol2Row1.setSizeUndefined();
	contactCol2Row2.setSizeUndefined();
	contactCol2Row3.setSizeUndefined();
	contactCol2Row4.setSizeUndefined();
	contactCol2Row5.setSizeUndefined();
	contactCol2Row6.setSizeUndefined();
	contactCol2Row7.setSizeUndefined();
	contactCol2Row8.setSizeUndefined();
	contactCol2Row9.setSizeUndefined();
	contactCol2Row10.setSizeUndefined();

	contactCol1Row1.addComponent(lblProjectTitle);
	contactCol1Row1.setComponentAlignment(lblProjectTitle, Alignment.MIDDLE_LEFT);

	contactCol1Row2.addComponent(lblProjectContactName);
	contactCol1Row2.addComponent(txtProjectContactName);
	contactCol1Row2.setComponentAlignment(lblProjectContactName, Alignment.MIDDLE_LEFT);
	contactCol1Row2.setComponentAlignment(txtProjectContactName, Alignment.MIDDLE_LEFT);

	contactCol1Row3.addComponent(lblProjectContactPhone);
	contactCol1Row3.addComponent(txtProjectContactPhone);
	contactCol1Row3.setComponentAlignment(lblProjectContactPhone, Alignment.MIDDLE_LEFT);
	contactCol1Row3.setComponentAlignment(txtProjectContactPhone, Alignment.MIDDLE_LEFT);

	contactCol1Row4.addComponent(lblProjectContactMobile);
	contactCol1Row4.addComponent(txtProjectContactMobile);
	contactCol1Row4.setComponentAlignment(lblProjectContactMobile, Alignment.MIDDLE_LEFT);
	contactCol1Row4.setComponentAlignment(txtProjectContactMobile, Alignment.MIDDLE_LEFT);

	contactCol1Row5.addComponent(lblProjectContactEmailAddress);
	contactCol1Row5.addComponent(txtProjectContactEmailAddress);
	contactCol1Row5.setComponentAlignment(lblProjectContactEmailAddress, Alignment.MIDDLE_LEFT);
	contactCol1Row5.setComponentAlignment(txtProjectContactEmailAddress, Alignment.MIDDLE_LEFT);

	contactCol1Row6.addComponent(lblTechnicalTitle);
	contactCol1Row6.setComponentAlignment(lblTechnicalTitle, Alignment.MIDDLE_LEFT);

	contactCol1Row7.addComponent(lblTechnicalContactName);
	contactCol1Row7.addComponent(txtTechnicalContactName);
	contactCol1Row7.setComponentAlignment(lblTechnicalContactName, Alignment.MIDDLE_LEFT);
	contactCol1Row7.setComponentAlignment(txtTechnicalContactName, Alignment.MIDDLE_LEFT);

	contactCol1Row8.addComponent(lblTechnicalContactPhone);
	contactCol1Row8.addComponent(txtTechnicalContactPhone);
	contactCol1Row8.setComponentAlignment(lblTechnicalContactPhone, Alignment.MIDDLE_LEFT);
	contactCol1Row8.setComponentAlignment(txtTechnicalContactPhone, Alignment.MIDDLE_LEFT);

	contactCol1Row9.addComponent(lblTechnicalContactMobile);
	contactCol1Row9.addComponent(txtTechnicalContactMobile);
	contactCol1Row9.setComponentAlignment(lblTechnicalContactMobile, Alignment.MIDDLE_LEFT);
	contactCol1Row9.setComponentAlignment(txtTechnicalContactMobile, Alignment.MIDDLE_LEFT);

	contactCol1Row10.addComponent(lblTechnicalContactEmailAddress);
	contactCol1Row10.addComponent(txtTechnicalContactEmailAddress);
	contactCol1Row10.setComponentAlignment(lblTechnicalContactEmailAddress, Alignment.MIDDLE_LEFT);
	contactCol1Row10.setComponentAlignment(txtTechnicalContactEmailAddress, Alignment.MIDDLE_LEFT);

	contactCol2Row1.addComponent(lblOperationTitle);
	contactCol2Row1.setComponentAlignment(lblOperationTitle, Alignment.MIDDLE_LEFT);

	contactCol2Row2.addComponent(lblOperationContactName);
	contactCol2Row2.addComponent(txtOperationContactName);
	contactCol2Row2.setComponentAlignment(lblOperationContactName, Alignment.MIDDLE_LEFT);
	contactCol2Row2.setComponentAlignment(txtOperationContactName, Alignment.MIDDLE_LEFT);

	contactCol2Row3.addComponent(lblOperationContactPhone);
	contactCol2Row3.addComponent(txtOperationContactPhone);
	contactCol2Row3.setComponentAlignment(lblOperationContactPhone, Alignment.MIDDLE_LEFT);
	contactCol2Row3.setComponentAlignment(txtOperationContactPhone, Alignment.MIDDLE_LEFT);

	contactCol2Row4.addComponent(lblOperationContactMobile);
	contactCol2Row4.addComponent(txtOperationContactMobile);
	contactCol2Row4.setComponentAlignment(lblOperationContactMobile, Alignment.MIDDLE_LEFT);
	contactCol2Row4.setComponentAlignment(txtOperationContactMobile, Alignment.MIDDLE_LEFT);

	contactCol2Row5.addComponent(lblOperationContactEmailAddress);
	contactCol2Row5.addComponent(txtOperationContactEmailAddress);
	contactCol2Row5.setComponentAlignment(lblOperationContactEmailAddress, Alignment.MIDDLE_LEFT);
	contactCol2Row5.setComponentAlignment(txtOperationContactEmailAddress, Alignment.MIDDLE_LEFT);

	contactCol2Row6.addComponent(lblFinancialTitle);
	contactCol2Row6.setComponentAlignment(lblFinancialTitle, Alignment.MIDDLE_LEFT);

	contactCol2Row7.addComponent(lblFinancialContactName);
	contactCol2Row7.addComponent(txtFinancialContactName);
	contactCol2Row7.setComponentAlignment(lblFinancialContactName, Alignment.MIDDLE_LEFT);
	contactCol2Row7.setComponentAlignment(txtFinancialContactName, Alignment.MIDDLE_LEFT);

	contactCol2Row8.addComponent(lblFinancialContactPhone);
	contactCol2Row8.addComponent(txtFinancialContactPhone);
	contactCol2Row8.setComponentAlignment(lblFinancialContactPhone, Alignment.MIDDLE_LEFT);
	contactCol2Row8.setComponentAlignment(txtFinancialContactPhone, Alignment.MIDDLE_LEFT);

	contactCol2Row9.addComponent(lblFinancialContactMobile);
	contactCol2Row9.addComponent(txtFinancialContactMobile);
	contactCol2Row9.setComponentAlignment(lblFinancialContactMobile, Alignment.MIDDLE_LEFT);
	contactCol2Row9.setComponentAlignment(txtFinancialContactMobile, Alignment.MIDDLE_LEFT);

	contactCol2Row10.addComponent(lblFinancialContactEmailAddress);
	contactCol2Row10.addComponent(txtFinancialContactEmailAddress);
	contactCol2Row10.setComponentAlignment(lblFinancialContactEmailAddress, Alignment.MIDDLE_LEFT);
	contactCol2Row10.setComponentAlignment(txtFinancialContactEmailAddress, Alignment.MIDDLE_LEFT);

	contactCol1Layout.addComponent(contactCol1Row1);
	contactCol1Layout.addComponent(contactCol1Row2);
	contactCol1Layout.addComponent(layoutProjectContactNameValidate);
	contactCol1Layout.addComponent(contactCol1Row3);
	contactCol1Layout.addComponent(layoutProjectContactPhoneValidate);
	contactCol1Layout.addComponent(contactCol1Row4);
	contactCol1Layout.addComponent(layoutProjectContactMobileValidate);
	contactCol1Layout.addComponent(contactCol1Row5);
	contactCol1Layout.addComponent(layoutProjectContactEmailAddressValidate);
	contactCol1Layout.addComponent(new HorizontalLayout());
	contactCol1Layout.addComponent(contactCol1Row6);
	contactCol1Layout.addComponent(contactCol1Row7);
	contactCol1Layout.addComponent(layoutTechnicalContactNameValidate);
	contactCol1Layout.addComponent(contactCol1Row8);
	contactCol1Layout.addComponent(layoutTechnicalContactPhoneValidate);
	contactCol1Layout.addComponent(contactCol1Row9);
	contactCol1Layout.addComponent(layoutTechnicalContactMobileValidate);
	contactCol1Layout.addComponent(contactCol1Row10);
	contactCol1Layout.addComponent(layoutTechnicalContactEmailAddressValidate);

	contactCol2Layout.addComponent(contactCol2Row1);
	contactCol2Layout.addComponent(contactCol2Row2);
	contactCol2Layout.addComponent(layoutOperationContactNameValidate);
	contactCol2Layout.addComponent(contactCol2Row3);
	contactCol2Layout.addComponent(layoutOperationContactPhoneValidate);
	contactCol2Layout.addComponent(contactCol2Row4);
	contactCol2Layout.addComponent(layoutOperationContactMobileValidate);
	contactCol2Layout.addComponent(contactCol2Row5);
	contactCol2Layout.addComponent(layoutOperationContactEmailAddressValidate);
	contactCol2Layout.addComponent(new HorizontalLayout());
	contactCol2Layout.addComponent(contactCol2Row6);
	contactCol2Layout.addComponent(contactCol2Row7);
	contactCol2Layout.addComponent(layoutFinancialContactNameValidate);
	contactCol2Layout.addComponent(contactCol2Row8);
	contactCol2Layout.addComponent(layoutFinancialContactPhoneValidate);
	contactCol2Layout.addComponent(contactCol2Row9);
	contactCol2Layout.addComponent(layoutFinancialContactMobileValidate);
	contactCol2Layout.addComponent(contactCol2Row10);
	contactCol2Layout.addComponent(layoutFinancialContactEmailAddressValidate);

	Label lblSepContactCol = new Label();
	lblSepContactCol.setWidth("40px");

	contactRow.addComponent(contactCol1Layout);
	contactRow.addComponent(lblSepContactCol);
	contactRow.addComponent(contactCol2Layout);

	serviceContactLayout.addComponent(new HorizontalLayout());
	serviceContactLayout.addComponent(contactRow);
	serviceContactLayout.addComponent(new HorizontalLayout());
	serviceContactLayout.setComponentAlignment(contactRow, Alignment.MIDDLE_CENTER);

	commandLayout.addComponent(btnSave);
	commandLayout.addComponent(btnCancel);

	mainLayout.addComponent(serviceInformationPanel);
	mainLayout.addComponent(paymentServicePanel);
	mainLayout.addComponent(paymentLimitPanel);
	mainLayout.addComponent(serviceContactPersonPanel);
	mainLayout.addComponent(new HorizontalLayout());
	mainLayout.addComponent(commandLayout);
	mainLayout.addComponent(new HorizontalLayout());
	mainLayout.setComponentAlignment(serviceInformationPanel, Alignment.MIDDLE_CENTER);
	mainLayout.setComponentAlignment(paymentServicePanel, Alignment.MIDDLE_CENTER);
	mainLayout.setComponentAlignment(paymentLimitPanel, Alignment.MIDDLE_CENTER);
	mainLayout.setComponentAlignment(serviceContactPersonPanel, Alignment.MIDDLE_CENTER);
	mainLayout.setComponentAlignment(commandLayout, Alignment.MIDDLE_CENTER);

	this.addComponent(this.editCashServiceProfilePanel);
	this.setComponentAlignment(this.editCashServiceProfilePanel, Alignment.TOP_CENTER);

	// readonly
	txtServiceId.setReadOnly(true);
	cbbMerchantId.setReadOnly(true);

	txtBankGuarantee.setReadOnly(true);
	pdfBankGuaranteeExpireDate.setReadOnly(true);
	txtResponseUrlBack.setReadOnly(true);
	txtSuccessUrl.setReadOnly(true);
	txtFailUrl.setReadOnly(true);
	txtCancelUrl.setReadOnly(true);
    }

    @Override
    public void initListener() {
	this.editCashServiceProfileSaveButtonClickListener.setBasedComponent(this);
	this.editCashServiceProfileCancelButtonClickListener.setBasedComponent(this);
	this.editCashServiceProfileIsBankGuaranteeValueChangeListener.setBasedComponent(this);
	this.editCashServiceProfileIsResponseUrlBackValueChangeListener.setBasedComponent(this);
	this.editCashServiceProfileIsSuccessUrlValueChangeListener.setBasedComponent(this);
	this.editCashServiceProfileIsFailUrlValueChangeListener.setBasedComponent(this);
	this.editCashServiceProfileIsCancellUrlValueChangeListener.setBasedComponent(this);

	this.editCashServiceProfileSaveButtonClickListener.setAutoEnabled(true);
	this.editCashServiceProfileCancelButtonClickListener.setAutoEnabled(true);

	this.btnSave.addClickListener(this.editCashServiceProfileSaveButtonClickListener);
	this.btnCancel.addClickListener(this.editCashServiceProfileCancelButtonClickListener);
	this.cbIsBankGuarantee.addValueChangeListener(this.editCashServiceProfileIsBankGuaranteeValueChangeListener);
	this.cbIsResponseUrlBack.addValueChangeListener(this.editCashServiceProfileIsResponseUrlBackValueChangeListener);
	this.cbIsSuccessUrl.addValueChangeListener(this.editCashServiceProfileIsSuccessUrlValueChangeListener);
	this.cbIsFailUrl.addValueChangeListener(this.editCashServiceProfileIsFailUrlValueChangeListener);
	this.cbIsCancelUrl.addValueChangeListener(this.editCashServiceProfileIsCancellUrlValueChangeListener);
    }

    @Override
    public void initValidator() {

	// this.txtServiceId.setMaxLength(6);
	// this.txtServiceId.setImmediate(true);
	// this.txtServiceId.setRequired(true);
	// this.txtServiceId.setRequiredError(this.messageBAO
	// .getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.serviceId.mandatory"));
	// RegexpValidator merchantIdRegexpValidator = new RegexpValidator("[A-Z0-9]*", true,
	// this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.serviceId.format"));
	// StringLengthValidator merchantIdStringLengthValidator = new StringLengthValidator(
	// this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.serviceId.length"), 1, 6, false);
	// this.txtServiceId.addValidator(merchantIdRegexpValidator);
	// this.txtServiceId.addValidator(merchantIdStringLengthValidator);
	//
	// this.cbbMerchantId.setImmediate(true);
	// this.cbbMerchantId.setRequired(true);
	// this.cbbMerchantId.setRequiredError(this.messageBAO
	// .getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.merchantId.mandatory"));

	this.cbbServiceStatus.setImmediate(true);
	this.cbbServiceStatus.setRequired(true);
	this.cbbServiceStatus.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.serviceStatus.mandatory"));

	this.txtChequeName.setImmediate(true);
	this.txtChequeName.setRequired(true);
	this.txtChequeName.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.chequeName.mandatory"));

	this.cbbHost.setImmediate(true);
	this.cbbHost.setRequired(true);
	this.cbbHost.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.host.mandatory"));

	this.txtInvoiceAging.setMaxLength(2);
	this.txtInvoiceAging.setImmediate(true);
	this.txtInvoiceAging.setRequired(true);
	this.txtInvoiceAging.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.invoiceAging.mandatory"));
	RegexpValidator invoiceAgingRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_NUMBER, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.invoiceAging.format"));
	StringLengthValidator invoiceAgingStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.invoiceAging.length"), 1, 2, false);
	this.txtInvoiceAging.addValidator(invoiceAgingRegexpValidator);
	this.txtInvoiceAging.addValidator(invoiceAgingStringLengthValidator);

	this.cbbBankCodeAndName.setImmediate(true);
	this.cbbBankCodeAndName.setRequired(true);
	this.cbbBankCodeAndName.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.bankCodeAndName.mandatory"));

	this.txtBankAccountNo.setMaxLength(10);
	this.txtBankAccountNo.setImmediate(true);
	this.txtBankAccountNo.setRequired(true);
	this.txtBankAccountNo.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.bankAccountNo.mandatory"));
	RegexpValidator bankAccountNoRegexpValidator = new RegexpValidator("^[0-9]{10}$", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.bankAccountNo.format"));
	StringLengthValidator bankAccountNoStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.bankAccountNo.length"), 1, 10, false);
	this.txtBankAccountNo.addValidator(bankAccountNoRegexpValidator);
	this.txtBankAccountNo.addValidator(bankAccountNoStringLengthValidator);

	this.txtSapArCode.setImmediate(true);
	RegexpValidator sapArCodeRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_NUMBER, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.sapArCode.format"));
	this.txtSapArCode.addValidator(sapArCodeRegexpValidator);

	this.txtSapApCode.setImmediate(true);
	RegexpValidator sapApCodeRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_NUMBER, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.sapApCode.format"));
	this.txtSapApCode.addValidator(sapApCodeRegexpValidator);

	this.txtMdr.setMaxLength(6);
	this.txtMdr.setImmediate(true);
	this.txtMdr.setRequired(true);
	this.txtMdr.setRequiredError(this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.mdr.mandatory"));
	RegexpValidator mdrRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_PERCENT, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.mdr.format"));
	this.txtMdr.addValidator(mdrRegexpValidator);

	this.txtServiceFee.setMaxLength(2);
	this.txtServiceFee.setImmediate(true);
	this.txtServiceFee.setRequired(true);
	this.txtServiceFee.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.serviceFee.mandatory"));
	RegexpValidator serviceFeeRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_NUMBER, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.serviceFee.format"));
	this.txtServiceFee.addValidator(serviceFeeRegexpValidator);

	this.txtDailyLimit.setMaxLength(9);
	this.txtDailyLimit.setImmediate(true);
	RegexpValidator dailyLimitRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_LIMIT_NUMBER, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.dailyLimit.format"));
	this.txtDailyLimit.addValidator(dailyLimitRegexpValidator);

	this.txtMonthlyLimit.setMaxLength(9);
	this.txtMonthlyLimit.setImmediate(true);
	RegexpValidator monthlyLimitRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_LIMIT_NUMBER, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.monthlyLimit.format"));
	this.txtMonthlyLimit.addValidator(monthlyLimitRegexpValidator);

	this.txtTransactionAmountLimit.setMaxLength(5);
	this.txtTransactionAmountLimit.setImmediate(true);
	RegexpValidator transactionAmountLimitRegexpValidator = new RegexpValidator(FormValidatorService.PATTERN_TRANSACTION_LIMIT_NUMBER,
		true, this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.transactionAmountLimit.format"));
	this.txtTransactionAmountLimit.addValidator(transactionAmountLimitRegexpValidator);
	final String transactionAmountLimitValidatorMessage = this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.transactionAmountLimit.integerRange");
	Validator transactionAmountLimitValidator = new Validator() {
	    private static final long serialVersionUID = 1L;

	    @Override
	    public void validate(Object value) throws InvalidValueException {
		if (value != null && !value.toString().isEmpty()) {
		    try {
			Integer txtTransactionAmountLimitValue = new Integer(value.toString());
			if (txtTransactionAmountLimitValue != null && txtTransactionAmountLimitValue.intValue() > 30001) {
			    throw new InvalidValueException(transactionAmountLimitValidatorMessage);
			}
		    } catch (Exception e) {
			throw new InvalidValueException(transactionAmountLimitValidatorMessage);
		    }
		}
	    }
	};
	this.txtTransactionAmountLimit.addValidator(transactionAmountLimitValidator);

	// Project
	this.txtProjectContactName.setMaxLength(100);
	this.txtProjectContactName.setImmediate(true);
	this.txtProjectContactName.setRequired(true);
	this.txtProjectContactName.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactName.mandatory"));
	RegexpValidator projectContactNameRegexpValidator = new RegexpValidator("[A-Za-z\\p{InThai} ]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactName.format"));
	StringLengthValidator projectContactNameStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactName.length"), 1, 100,
		false);
	this.txtProjectContactName.addValidator(projectContactNameRegexpValidator);
	this.txtProjectContactName.addValidator(projectContactNameStringLengthValidator);

	this.txtProjectContactPhone.setMaxLength(40);
	this.txtProjectContactPhone.setImmediate(true);
	this.txtProjectContactPhone.setRequired(true);
	this.txtProjectContactPhone.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactPhone.mandatory"));
	RegexpValidator projectContactPhoneRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactPhone.format"));
	StringLengthValidator projectContactPhoneStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactPhone.length"), 1, 40,
		false);
	this.txtProjectContactPhone.addValidator(projectContactPhoneRegexpValidator);
	this.txtProjectContactPhone.addValidator(projectContactPhoneStringLengthValidator);

	this.txtProjectContactMobile.setMaxLength(40);
	this.txtProjectContactMobile.setImmediate(true);
	RegexpValidator projectContactMobileRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactMobile.format"));
	StringLengthValidator projectContactMobileStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactMobile.length"), 1, 40,
		true);
	this.txtProjectContactMobile.addValidator(projectContactMobileRegexpValidator);
	this.txtProjectContactMobile.addValidator(projectContactMobileStringLengthValidator);

	this.txtProjectContactEmailAddress.setImmediate(true);
	this.txtProjectContactEmailAddress.setRequired(true);
	this.txtProjectContactEmailAddress.setRequiredError(this.messageBAO
		.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactEmailAddress.mandatory"));
	RegexpValidator projectContactEmailAddressValidator = new RegexpValidator(FormValidatorService.PATTERN_EMAILS, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.projectContactEmailAddress.format"));
	this.txtProjectContactEmailAddress.addValidator(projectContactEmailAddressValidator);

	// Operation
	this.txtOperationContactName.setMaxLength(100);
	this.txtOperationContactName.setImmediate(true);
	RegexpValidator operationContactNameRegexpValidator = new RegexpValidator("[A-Za-z\\p{InThai} ]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.operationContactName.format"));
	StringLengthValidator operationContactNameStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.operationContactName.length"), 1,
		100, true);
	this.txtOperationContactName.addValidator(operationContactNameRegexpValidator);
	this.txtOperationContactName.addValidator(operationContactNameStringLengthValidator);

	this.txtOperationContactPhone.setMaxLength(40);
	this.txtOperationContactPhone.setImmediate(true);
	RegexpValidator operationContactPhoneRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.operationContactPhone.format"));
	StringLengthValidator operationContactPhoneStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.operationContactPhone.length"), 1,
		40, true);
	this.txtOperationContactPhone.addValidator(operationContactPhoneRegexpValidator);
	this.txtOperationContactPhone.addValidator(operationContactPhoneStringLengthValidator);

	this.txtOperationContactMobile.setMaxLength(40);
	this.txtOperationContactMobile.setImmediate(true);
	RegexpValidator operationContactMobileRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.operationContactMobile.format"));
	StringLengthValidator operationContactMobileStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.operationContactMobile.length"), 1,
		40, true);
	this.txtOperationContactMobile.addValidator(operationContactMobileRegexpValidator);
	this.txtOperationContactMobile.addValidator(operationContactMobileStringLengthValidator);

	this.txtOperationContactEmailAddress.setImmediate(true);
	RegexpValidator operationContactEmailAddressValidator = new RegexpValidator(FormValidatorService.PATTERN_EMAILS, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.operationContactEmailAddress.format"));
	this.txtOperationContactEmailAddress.addValidator(operationContactEmailAddressValidator);

	// Technical
	this.txtTechnicalContactName.setMaxLength(100);
	this.txtTechnicalContactName.setImmediate(true);
	RegexpValidator technicalContactNameRegexpValidator = new RegexpValidator("[A-Za-z\\p{InThai} ]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.technicalContactName.format"));
	StringLengthValidator technicalContactNameStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.technicalContactName.length"), 1,
		100, true);
	this.txtTechnicalContactName.addValidator(technicalContactNameRegexpValidator);
	this.txtTechnicalContactName.addValidator(technicalContactNameStringLengthValidator);

	this.txtTechnicalContactPhone.setMaxLength(40);
	this.txtTechnicalContactPhone.setImmediate(true);
	RegexpValidator technicalContactPhoneRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.technicalContactPhone.format"));
	StringLengthValidator technicalContactPhoneStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.technicalContactPhone.length"), 1,
		40, true);
	this.txtTechnicalContactPhone.addValidator(technicalContactPhoneRegexpValidator);
	this.txtTechnicalContactPhone.addValidator(technicalContactPhoneStringLengthValidator);

	this.txtTechnicalContactMobile.setMaxLength(40);
	this.txtTechnicalContactMobile.setImmediate(true);
	RegexpValidator technicalContactMobileRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.technicalContactMobile.format"));
	StringLengthValidator technicalContactMobileStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.technicalContactMobile.length"), 1,
		40, true);
	this.txtTechnicalContactMobile.addValidator(technicalContactMobileRegexpValidator);
	this.txtTechnicalContactMobile.addValidator(technicalContactMobileStringLengthValidator);

	this.txtTechnicalContactEmailAddress.setImmediate(true);
	RegexpValidator technicalContactEmailAddressValidator = new RegexpValidator(FormValidatorService.PATTERN_EMAILS, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.technicalContactEmailAddress.format"));
	this.txtTechnicalContactEmailAddress.addValidator(technicalContactEmailAddressValidator);

	// Financial
	this.txtFinancialContactName.setMaxLength(100);
	this.txtFinancialContactName.setImmediate(true);
	RegexpValidator financialContactNameRegexpValidator = new RegexpValidator("[A-Za-z\\p{InThai} ]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.financialContactName.format"));
	StringLengthValidator financialContactNameStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.financialContactName.length"), 1,
		100, true);
	this.txtFinancialContactName.addValidator(financialContactNameRegexpValidator);
	this.txtFinancialContactName.addValidator(financialContactNameStringLengthValidator);

	this.txtFinancialContactPhone.setMaxLength(40);
	this.txtFinancialContactPhone.setImmediate(true);
	RegexpValidator financialContactPhoneRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.financialContactPhone.format"));
	StringLengthValidator financialContactPhoneStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.financialContactPhone.length"), 1,
		40, true);
	this.txtFinancialContactPhone.addValidator(financialContactPhoneRegexpValidator);
	this.txtFinancialContactPhone.addValidator(financialContactPhoneStringLengthValidator);

	this.txtFinancialContactMobile.setMaxLength(40);
	this.txtFinancialContactMobile.setImmediate(true);
	RegexpValidator financialContactMobileRegexpValidator = new RegexpValidator("[0-9-+]*", true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.financialContactName.format"));
	StringLengthValidator financialContactMobileStringLengthValidator = new StringLengthValidator(
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.financialContactName.length"), 1, 40,
		true);
	this.txtFinancialContactMobile.addValidator(financialContactMobileRegexpValidator);
	this.txtFinancialContactMobile.addValidator(financialContactMobileStringLengthValidator);

	this.txtFinancialContactEmailAddress.setImmediate(true);
	RegexpValidator financialContactEmailAddressValidator = new RegexpValidator(FormValidatorService.PATTERN_EMAILS, true,
		this.messageBAO.getMessage("com.fw.ui.view.profile.EditCashServiceProfileView.message.financialContactEmailAddress.format"));
	this.txtFinancialContactEmailAddress.addValidator(financialContactEmailAddressValidator);

    }

    @Override
    public void initData() {
	try {
	    Long serviceId = (Long) VaadinService.getCurrentRequest().getAttribute(
		    EDIT_CASH_SERVICE_PROFILE_SERVICE_PROFILE_ID_REQUEST_ATTRIBUTE);
	    if (serviceId == null) {
		String landing = propertyBAO.getPropertyValue("view.profile-service-search.path");
		this.getUI().getNavigator().navigateTo(landing);
	    } else {
		ServiceProfileBean resultServiceProfileBean = serviceProfileBAO.getServiceProfile(serviceId);
		this.serviceProfileBean = resultServiceProfileBean;
		if (resultServiceProfileBean == null || resultServiceProfileBean.getId() == null) {
		    String msg = this.messageBAO.getMessage("message.error.common");
		    Notification notification = new Notification("Warning", msg, Notification.Type.WARNING_MESSAGE, true);
		    notification.setDelayMsec(1000);
		    notification.show(Page.getCurrent());
		} else {

		    List<EntryBean<String, String>> masterData = this.masterDataBAO.selectAllMerchantProfileId();
		    if (masterData != null && !masterData.isEmpty()) {
			for (EntryBean<String, String> entry : masterData) {
			    if (entry.getValue() != null && entry.getValue().trim().length() > 0) {
				this.cbbMerchantId.addItem(entry.getValue());
				this.cbbMerchantId.setItemCaption(entry.getValue(), entry.getValue());
			    }
			}
		    }

		    masterData = masterDataBAO.selectServiceProfileStatusByCurrentStatus(resultServiceProfileBean.getServiceStatus());
		    if (masterData != null && !masterData.isEmpty()) {
			for (EntryBean<String, String> entry : masterData) {
			    this.cbbServiceStatus.addItem(entry.getKey());
			    this.cbbServiceStatus.setItemCaption(entry.getKey(), entry.getValue());
			}
		    }

		    masterData = masterDataBAO.selectAllServiceProfileHost();
		    if (masterData != null && !masterData.isEmpty()) {
			for (EntryBean<String, String> entry : masterData) {
			    this.cbbHost.addItem(entry.getKey());
			    this.cbbHost.setItemCaption(entry.getKey(), entry.getValue());
			}
		    }

		    masterData = masterDataBAO.selectAllBank();
		    if (masterData != null && !masterData.isEmpty()) {
			for (EntryBean<String, String> entry : masterData) {
			    this.cbbBankCodeAndName.addItem(entry.getKey());
			    this.cbbBankCodeAndName.setItemCaption(entry.getKey(), entry.getValue());
			}
		    }

		    uiCommonUtils.setValueUIComponent(cbIsTestService, resultServiceProfileBean.getIsTestService());
		    uiCommonUtils.setValueUIComponent(txtServiceId, resultServiceProfileBean.getServiceId());
		    uiCommonUtils.setValueUIComponent(cbbMerchantId, resultServiceProfileBean.getMerchantId());
		    uiCommonUtils.setValueUIComponent(cbbServiceStatus, resultServiceProfileBean.getServiceStatus());
		    uiCommonUtils.setValueUIComponent(cbbHost, resultServiceProfileBean.getHost());
		    uiCommonUtils.setValueUIComponent(cbIsBankGuarantee, resultServiceProfileBean.getIsBankGuarantee());
		    uiCommonUtils.setValueUIComponent(txtBankGuarantee, resultServiceProfileBean.getBankGuarantee());
		    if (resultServiceProfileBean.getBankGuaranteeExpireDate() != null
			    && !resultServiceProfileBean.getBankGuaranteeExpireDate().isEmpty()) {
			uiCommonUtils.setValueUIComponent(pdfBankGuaranteeExpireDate, StringUtils.parseDate(
				resultServiceProfileBean.getBankGuaranteeExpireDate(), StringUtils.PATTERN_MONTH_YEAR_PERSISTENCE));
		    } else {
			uiCommonUtils.setValueUIComponent(pdfBankGuaranteeExpireDate, null);
		    }
		    uiCommonUtils.setValueUIComponent(txtChequeName, resultServiceProfileBean.getChequeName());
		    if (resultServiceProfileBean.getLaunchedDate() != null && !resultServiceProfileBean.getLaunchedDate().isEmpty()) {
			uiCommonUtils.setValueUIComponent(pdfLaunchedDate,
				StringUtils.parseDate(resultServiceProfileBean.getLaunchedDate(), StringUtils.PATTERN_DATE_PERSISTENCE));
		    } else {
			uiCommonUtils.setValueUIComponent(pdfLaunchedDate, null);
		    }
		    uiCommonUtils.setValueUIComponent(cbIsResponseUrlBack, resultServiceProfileBean.getIsResponseUrlBack());
		    uiCommonUtils.setValueUIComponent(txtResponseUrlBack, resultServiceProfileBean.getResponseUrlBack());
		    uiCommonUtils.setValueUIComponent(cbIsSuccessUrl, resultServiceProfileBean.getIsSuccessUrl());
		    uiCommonUtils.setValueUIComponent(txtSuccessUrl, resultServiceProfileBean.getSuccessUrl());
		    uiCommonUtils.setValueUIComponent(cbIsNotifyCustomer, resultServiceProfileBean.getIsNotifyCustomer());
		    uiCommonUtils.setValueUIComponent(cbIsFailUrl, resultServiceProfileBean.getIsFailUrl());
		    uiCommonUtils.setValueUIComponent(txtFailUrl, resultServiceProfileBean.getFailUrl());
		    uiCommonUtils.setValueUIComponent(cbIsCancelUrl, resultServiceProfileBean.getIsCancelUrl());
		    uiCommonUtils.setValueUIComponent(txtCancelUrl, resultServiceProfileBean.getCancelUrl());

		    uiCommonUtils.setValueUIComponent(txtInvoiceAging, resultServiceProfileBean.getInvoiceAging());
		    uiCommonUtils.setValueUIComponent(cbIsBypassInvoiceAging, resultServiceProfileBean.getIsBypassInvoiceAging());
		    uiCommonUtils.setValueUIComponent(cbbBankCodeAndName, resultServiceProfileBean.getBankCodeAndName());
		    uiCommonUtils.setValueUIComponent(txtBankAccountNo, resultServiceProfileBean.getBankAccountNo());
		    uiCommonUtils.setValueUIComponent(txtSapApCode, resultServiceProfileBean.getSapApCode());
		    uiCommonUtils.setValueUIComponent(txtSapArCode, resultServiceProfileBean.getSapArCode());
		    uiCommonUtils.setValueUIComponent(txtMessageSlip1, resultServiceProfileBean.getMessageSlip1());
		    uiCommonUtils.setValueUIComponent(txtMessageSlip2, resultServiceProfileBean.getMessageSlip2());
		    uiCommonUtils.setValueUIComponent(txtMdr, resultServiceProfileBean.getMdr());
		    uiCommonUtils.setValueUIComponent(txtServiceFee, resultServiceProfileBean.getServiceFee());

		    uiCommonUtils.setValueUIComponent(txtDailyLimit, resultServiceProfileBean.getDailyLimit());
		    uiCommonUtils.setValueUIComponent(txtMonthlyLimit, resultServiceProfileBean.getMonthlyLimit());
		    uiCommonUtils.setValueUIComponent(txtTransactionAmountLimit, resultServiceProfileBean.getTransactionAmountLimit());

		    uiCommonUtils.setValueUIComponent(txtProjectContactName, resultServiceProfileBean.getContact1Name());
		    uiCommonUtils.setValueUIComponent(txtProjectContactPhone, resultServiceProfileBean.getContact1Phone());
		    uiCommonUtils.setValueUIComponent(txtProjectContactMobile, resultServiceProfileBean.getContact1Mobile());
		    uiCommonUtils.setValueUIComponent(txtProjectContactEmailAddress, resultServiceProfileBean.getContact1Email());

		    uiCommonUtils.setValueUIComponent(txtOperationContactName, resultServiceProfileBean.getContact2Name());
		    uiCommonUtils.setValueUIComponent(txtOperationContactPhone, resultServiceProfileBean.getContact2Phone());
		    uiCommonUtils.setValueUIComponent(txtOperationContactMobile, resultServiceProfileBean.getContact2Mobile());
		    uiCommonUtils.setValueUIComponent(txtOperationContactEmailAddress, resultServiceProfileBean.getContact2Email());

		    uiCommonUtils.setValueUIComponent(txtTechnicalContactName, resultServiceProfileBean.getContact3Name());
		    uiCommonUtils.setValueUIComponent(txtTechnicalContactPhone, resultServiceProfileBean.getContact3Phone());
		    uiCommonUtils.setValueUIComponent(txtTechnicalContactMobile, resultServiceProfileBean.getContact3Mobile());
		    uiCommonUtils.setValueUIComponent(txtTechnicalContactEmailAddress, resultServiceProfileBean.getContact3Email());

		    uiCommonUtils.setValueUIComponent(txtFinancialContactName, resultServiceProfileBean.getContact4Name());
		    uiCommonUtils.setValueUIComponent(txtFinancialContactPhone, resultServiceProfileBean.getContact4Phone());
		    uiCommonUtils.setValueUIComponent(txtFinancialContactMobile, resultServiceProfileBean.getContact4Mobile());
		    uiCommonUtils.setValueUIComponent(txtFinancialContactEmailAddress, resultServiceProfileBean.getContact4Email());

		    uiCommonUtils.clearAllUIComponentNoInputFieldWithPrefix(this);
		}
	    }

	} catch (Exception e) {
	    e.printStackTrace();
	}

    }

    public ServiceProfileBAO getServiceProfileBAO() {
	return serviceProfileBAO;
    }

    public MasterDataBAO getMasterDataBAO() {
	return masterDataBAO;
    }

    public MessageBAO getMessageBAO() {
	return messageBAO;
    }

    public PropertyBAO getPropertyBAO() {
	return propertyBAO;
    }

    public FileBAO getFileBAO() {
	return fileBAO;
    }

    public UICommonUtils getUiCommonUtils() {
	return uiCommonUtils;
    }

    public EditCashServiceProfileSaveButtonClickListener getEditCashServiceProfileSaveButtonClickListener() {
	return editCashServiceProfileSaveButtonClickListener;
    }

    public EditCashServiceProfileCancelButtonClickListener getEditCashServiceProfileCancelButtonClickListener() {
	return editCashServiceProfileCancelButtonClickListener;
    }

    public EditCashServiceProfileIsBankGuaranteeValueChangeListener getEditCashServiceProfileIsBankGuaranteeValueChangeListener() {
	return editCashServiceProfileIsBankGuaranteeValueChangeListener;
    }

    public EditCashServiceProfileIsResponseUrlBackValueChangeListener getEditCashServiceProfileIsResponseUrlBackValueChangeListener() {
	return editCashServiceProfileIsResponseUrlBackValueChangeListener;
    }

    public EditCashServiceProfileIsSuccessUrlValueChangeListener getEditCashServiceProfileIsSuccessUrlValueChangeListener() {
	return editCashServiceProfileIsSuccessUrlValueChangeListener;
    }

    public EditCashServiceProfileIsFailUrlValueChangeListener getEditCashServiceProfileIsFailUrlValueChangeListener() {
	return editCashServiceProfileIsFailUrlValueChangeListener;
    }

    public EditCashServiceProfileIsCancellUrlValueChangeListener getEditCashServiceProfileIsCancellUrlValueChangeListener() {
	return editCashServiceProfileIsCancellUrlValueChangeListener;
    }

    public PrintButtonClickListener getPrintButtonClickListener() {
	return printButtonClickListener;
    }

    public Panel getEditCashServiceProfilePanel() {
	return editCashServiceProfilePanel;
    }

    public Panel getServiceInformationPanel() {
	return serviceInformationPanel;
    }

    public Panel getPaymentServicePanel() {
	return paymentServicePanel;
    }

    public Panel getPaymentLimitPanel() {
	return paymentLimitPanel;
    }

    public Panel getServiceContactPersonPanel() {
	return serviceContactPersonPanel;
    }

    public Label getLblBlank() {
	return lblBlank;
    }

    public Label getLblServiceId() {
	return lblServiceId;
    }

    public Label getLblMerchantId() {
	return lblMerchantId;
    }

    public Label getLblServiceStatus() {
	return lblServiceStatus;
    }

    public Label getLblHost() {
	return lblHost;
    }

    public Label getLblBankGuaranteeExpireDate() {
	return lblBankGuaranteeExpireDate;
    }

    public Label getLblChequeName() {
	return lblChequeName;
    }

    public Label getLblLaunchedDate() {
	return lblLaunchedDate;
    }

    public Label getLblInvoiceAging() {
	return lblInvoiceAging;
    }

    public Label getLblInvoiceAgingSuffix() {
	return lblInvoiceAgingSuffix;
    }

    public Label getLblBankCodeAndName() {
	return lblBankCodeAndName;
    }

    public Label getLblBankAccountNo() {
	return lblBankAccountNo;
    }

    public Label getLblSapArCode() {
	return lblSapArCode;
    }

    public Label getLblSapApCode() {
	return lblSapApCode;
    }

    public Label getLblMessageSlip1() {
	return lblMessageSlip1;
    }

    public Label getLblMessageSlip2() {
	return lblMessageSlip2;
    }

    public Label getLblMdr() {
	return lblMdr;
    }

    public Label getLblMdrSuffix() {
	return lblMdrSuffix;
    }

    public Label getLblServiceFee() {
	return lblServiceFee;
    }

    public Label getLblServiceFeeSuffix() {
	return lblServiceFeeSuffix;
    }

    public Label getLblDailyLimit() {
	return lblDailyLimit;
    }

    public Label getLblDailyLimitSuffix() {
	return lblDailyLimitSuffix;
    }

    public Label getLblMonthlyLimit() {
	return lblMonthlyLimit;
    }

    public Label getLblMonthlyLimitSuffix() {
	return lblMonthlyLimitSuffix;
    }

    public Label getLblTransactionAmountLimit() {
	return lblTransactionAmountLimit;
    }

    public Label getLblTransactionAmountLimitSuffix() {
	return lblTransactionAmountLimitSuffix;
    }

    public Label getLblProjectTitle() {
	return lblProjectTitle;
    }

    public Label getLblProjectContactName() {
	return lblProjectContactName;
    }

    public Label getLblProjectContactPhone() {
	return lblProjectContactPhone;
    }

    public Label getLblProjectContactMobile() {
	return lblProjectContactMobile;
    }

    public Label getLblProjectContactEmailAddress() {
	return lblProjectContactEmailAddress;
    }

    public Label getLblOperationTitle() {
	return lblOperationTitle;
    }

    public Label getLblOperationContactName() {
	return lblOperationContactName;
    }

    public Label getLblOperationContactPhone() {
	return lblOperationContactPhone;
    }

    public Label getLblOperationContactMobile() {
	return lblOperationContactMobile;
    }

    public Label getLblOperationContactEmailAddress() {
	return lblOperationContactEmailAddress;
    }

    public Label getLblTechnicalTitle() {
	return lblTechnicalTitle;
    }

    public Label getLblTechnicalContactName() {
	return lblTechnicalContactName;
    }

    public Label getLblTechnicalContactPhone() {
	return lblTechnicalContactPhone;
    }

    public Label getLblTechnicalContactMobile() {
	return lblTechnicalContactMobile;
    }

    public Label getLblTechnicalContactEmailAddress() {
	return lblTechnicalContactEmailAddress;
    }

    public Label getLblFinancialTitle() {
	return lblFinancialTitle;
    }

    public Label getLblFinancialContactName() {
	return lblFinancialContactName;
    }

    public Label getLblFinancialContactPhone() {
	return lblFinancialContactPhone;
    }

    public Label getLblFinancialContactMobile() {
	return lblFinancialContactMobile;
    }

    public Label getLblFinancialContactEmailAddress() {
	return lblFinancialContactEmailAddress;
    }

    public CheckBox getCbIsTestService() {
	return cbIsTestService;
    }

    public TextField getTxtServiceId() {
	return txtServiceId;
    }

    public ComboBox getCbbMerchantId() {
	return cbbMerchantId;
    }

    public ComboBox getCbbServiceStatus() {
	return cbbServiceStatus;
    }

    public ComboBox getCbbHost() {
	return cbbHost;
    }

    public CheckBox getCbIsBankGuarantee() {
	return cbIsBankGuarantee;
    }

    public TextField getTxtBankGuarantee() {
	return txtBankGuarantee;
    }

    public PopupDateField getPdfBankGuaranteeExpireDate() {
	return pdfBankGuaranteeExpireDate;
    }

    public TextField getTxtChequeName() {
	return txtChequeName;
    }

    public PopupDateField getPdfLaunchedDate() {
	return pdfLaunchedDate;
    }

    public CheckBox getCbIsResponseUrlBack() {
	return cbIsResponseUrlBack;
    }

    public TextField getTxtResponseUrlBack() {
	return txtResponseUrlBack;
    }

    public CheckBox getCbIsSuccessUrl() {
	return cbIsSuccessUrl;
    }

    public TextField getTxtSuccessUrl() {
	return txtSuccessUrl;
    }

    public CheckBox getCbIsFailUrl() {
	return cbIsFailUrl;
    }

    public TextField getTxtFailUrl() {
	return txtFailUrl;
    }

    public CheckBox getCbIsCancelUrl() {
	return cbIsCancelUrl;
    }

    public TextField getTxtCancelUrl() {
	return txtCancelUrl;
    }

    public CheckBox getCbIsNotifyCustomer() {
	return cbIsNotifyCustomer;
    }

    public TextField getTxtInvoiceAging() {
	return txtInvoiceAging;
    }

    public CheckBox getCbIsBypassInvoiceAging() {
	return cbIsBypassInvoiceAging;
    }

    public ComboBox getCbbBankCodeAndName() {
	return cbbBankCodeAndName;
    }

    public TextField getTxtBankAccountNo() {
	return txtBankAccountNo;
    }

    public TextField getTxtSapArCode() {
	return txtSapArCode;
    }

    public TextField getTxtSapApCode() {
	return txtSapApCode;
    }

    public TextField getTxtMessageSlip1() {
	return txtMessageSlip1;
    }

    public TextField getTxtMessageSlip2() {
	return txtMessageSlip2;
    }

    public TextField getTxtMdr() {
	return txtMdr;
    }

    public TextField getTxtServiceFee() {
	return txtServiceFee;
    }

    public TextField getTxtDailyLimit() {
	return txtDailyLimit;
    }

    public TextField getTxtMonthlyLimit() {
	return txtMonthlyLimit;
    }

    public TextField getTxtTransactionAmountLimit() {
	return txtTransactionAmountLimit;
    }

    public TextField getTxtProjectContactName() {
	return txtProjectContactName;
    }

    public TextField getTxtProjectContactPhone() {
	return txtProjectContactPhone;
    }

    public TextField getTxtProjectContactMobile() {
	return txtProjectContactMobile;
    }

    public TextArea getTxtProjectContactEmailAddress() {
	return txtProjectContactEmailAddress;
    }

    public TextField getTxtOperationContactName() {
	return txtOperationContactName;
    }

    public TextField getTxtOperationContactPhone() {
	return txtOperationContactPhone;
    }

    public TextField getTxtOperationContactMobile() {
	return txtOperationContactMobile;
    }

    public TextArea getTxtOperationContactEmailAddress() {
	return txtOperationContactEmailAddress;
    }

    public TextField getTxtTechnicalContactName() {
	return txtTechnicalContactName;
    }

    public TextField getTxtTechnicalContactPhone() {
	return txtTechnicalContactPhone;
    }

    public TextField getTxtTechnicalContactMobile() {
	return txtTechnicalContactMobile;
    }

    public TextArea getTxtTechnicalContactEmailAddress() {
	return txtTechnicalContactEmailAddress;
    }

    public TextField getTxtFinancialContactName() {
	return txtFinancialContactName;
    }

    public TextField getTxtFinancialContactPhone() {
	return txtFinancialContactPhone;
    }

    public TextField getTxtFinancialContactMobile() {
	return txtFinancialContactMobile;
    }

    public TextArea getTxtFinancialContactEmailAddress() {
	return txtFinancialContactEmailAddress;
    }

    public Label getLblIsTestServiceValidateMessage() {
	return lblIsTestServiceValidateMessage;
    }

    public Label getLblServiceIdValidateMessage() {
	return lblServiceIdValidateMessage;
    }

    public Label getLblMerchantIdValidateMessage() {
	return lblMerchantIdValidateMessage;
    }

    public Label getLblServiceStatusValidateMessage() {
	return lblServiceStatusValidateMessage;
    }

    public Label getLblHostValidateMessage() {
	return lblHostValidateMessage;
    }

    public Label getLblBankGuaranteeValidateMessage() {
	return lblBankGuaranteeValidateMessage;
    }

    public Label getLblBankGuaranteeExpireDateValidateMessage() {
	return lblBankGuaranteeExpireDateValidateMessage;
    }

    public Label getLblChequeNameValidateMessage() {
	return lblChequeNameValidateMessage;
    }

    public Label getLblLaunchedDateValidateMessage() {
	return lblLaunchedDateValidateMessage;
    }

    public Label getLblResponseUrlBackValidateMessage() {
	return lblResponseUrlBackValidateMessage;
    }

    public Label getLblSuccessUrlValidateMessage() {
	return lblSuccessUrlValidateMessage;
    }

    public Label getLblFailUrlValidateMessage() {
	return lblFailUrlValidateMessage;
    }

    public Label getLblCancelUrlValidateMessage() {
	return lblCancelUrlValidateMessage;
    }

    public Label getLblNotifyCustomerValidateMessage() {
	return lblNotifyCustomerValidateMessage;
    }

    public Label getLblInvoiceAgingValidateMessage() {
	return lblInvoiceAgingValidateMessage;
    }

    public Label getLblBypassInvoiceAgingValidateMessage() {
	return lblBypassInvoiceAgingValidateMessage;
    }

    public Label getLblBankCodeAndNameValidateMessage() {
	return lblBankCodeAndNameValidateMessage;
    }

    public Label getLblBankAccountNoValidateMessage() {
	return lblBankAccountNoValidateMessage;
    }

    public Label getLblSapArCodeValidateMessage() {
	return lblSapArCodeValidateMessage;
    }

    public Label getLblSapApCodeValidateMessage() {
	return lblSapApCodeValidateMessage;
    }

    public Label getLblMessageSlip1ValidateMessage() {
	return lblMessageSlip1ValidateMessage;
    }

    public Label getLblMessageSlip2ValidateMessage() {
	return lblMessageSlip2ValidateMessage;
    }

    public Label getLblMdrValidateMessage() {
	return lblMdrValidateMessage;
    }

    public Label getLblServiceFeeValidateMessage() {
	return lblServiceFeeValidateMessage;
    }

    public Label getLblDailyLimitValidateMessage() {
	return lblDailyLimitValidateMessage;
    }

    public Label getLblMonthlyLimitValidateMessage() {
	return lblMonthlyLimitValidateMessage;
    }

    public Label getLblTransactionAmountLimitValidateMessage() {
	return lblTransactionAmountLimitValidateMessage;
    }

    public Label getLblProjectContactNameValidateMessage() {
	return lblProjectContactNameValidateMessage;
    }

    public Label getLblProjectContactPhoneValidateMessage() {
	return lblProjectContactPhoneValidateMessage;
    }

    public Label getLblProjectContactMobileValidateMessage() {
	return lblProjectContactMobileValidateMessage;
    }

    public Label getLblProjectContactEmailAddressValidateMessage() {
	return lblProjectContactEmailAddressValidateMessage;
    }

    public Label getLblOperationContactNameValidateMessage() {
	return lblOperationContactNameValidateMessage;
    }

    public Label getLblOperationContactPhoneValidateMessage() {
	return lblOperationContactPhoneValidateMessage;
    }

    public Label getLblOperationContactMobileValidateMessage() {
	return lblOperationContactMobileValidateMessage;
    }

    public Label getLblOperationContactEmailAddressValidateMessage() {
	return lblOperationContactEmailAddressValidateMessage;
    }

    public Label getLblTechnicalContactNameValidateMessage() {
	return lblTechnicalContactNameValidateMessage;
    }

    public Label getLblTechnicalContactPhoneValidateMessage() {
	return lblTechnicalContactPhoneValidateMessage;
    }

    public Label getLblTechnicalContactMobileValidateMessage() {
	return lblTechnicalContactMobileValidateMessage;
    }

    public Label getLblTechnicalContactEmailAddressValidateMessage() {
	return lblTechnicalContactEmailAddressValidateMessage;
    }

    public Label getLblFinancialContactNameValidateMessage() {
	return lblFinancialContactNameValidateMessage;
    }

    public Label getLblFinancialContactPhoneValidateMessage() {
	return lblFinancialContactPhoneValidateMessage;
    }

    public Label getLblFinancialContactMobileValidateMessage() {
	return lblFinancialContactMobileValidateMessage;
    }

    public Label getLblFinancialContactEmailAddressValidateMessage() {
	return lblFinancialContactEmailAddressValidateMessage;
    }

    public HorizontalLayout getLayoutIsTestServiceValidate() {
	return layoutIsTestServiceValidate;
    }

    public HorizontalLayout getLayoutServiceIdValidate() {
	return layoutServiceIdValidate;
    }

    public HorizontalLayout getLayoutMerchantIdValidate() {
	return layoutMerchantIdValidate;
    }

    public HorizontalLayout getLayoutServiceStatusValidate() {
	return layoutServiceStatusValidate;
    }

    public HorizontalLayout getLayoutHostValidate() {
	return layoutHostValidate;
    }

    public HorizontalLayout getLayoutBankGuaranteeValidate() {
	return layoutBankGuaranteeValidate;
    }

    public HorizontalLayout getLayoutBankGuaranteeExpireDateValidate() {
	return layoutBankGuaranteeExpireDateValidate;
    }

    public HorizontalLayout getLayoutChequeNameValidate() {
	return layoutChequeNameValidate;
    }

    public HorizontalLayout getLayoutLaunchedDateValidate() {
	return layoutLaunchedDateValidate;
    }

    public HorizontalLayout getLayoutResponseUrlBackValidate() {
	return layoutResponseUrlBackValidate;
    }

    public HorizontalLayout getLayoutSuccessUrlValidate() {
	return layoutSuccessUrlValidate;
    }

    public HorizontalLayout getLayoutFailUrlValidate() {
	return layoutFailUrlValidate;
    }

    public HorizontalLayout getLayoutCancelUrlValidate() {
	return layoutCancelUrlValidate;
    }

    public HorizontalLayout getLayoutNotifyCustomerValidate() {
	return layoutNotifyCustomerValidate;
    }

    public HorizontalLayout getLayoutBlank1Validate() {
	return layoutBlank1Validate;
    }

    public HorizontalLayout getLayoutBlank2Validate() {
	return layoutBlank2Validate;
    }

    public HorizontalLayout getLayoutInvoiceAgingValidate() {
	return layoutInvoiceAgingValidate;
    }

    public HorizontalLayout getLayoutBypassInvoiceAgingValidate() {
	return layoutBypassInvoiceAgingValidate;
    }

    public HorizontalLayout getLayoutBankCodeAndNameValidate() {
	return layoutBankCodeAndNameValidate;
    }

    public HorizontalLayout getLayoutBankAccountNoValidate() {
	return layoutBankAccountNoValidate;
    }

    public HorizontalLayout getLayoutSapArCodeValidate() {
	return layoutSapArCodeValidate;
    }

    public HorizontalLayout getLayoutSapApCodeValidate() {
	return layoutSapApCodeValidate;
    }

    public HorizontalLayout getLayoutMessageSlip1Validate() {
	return layoutMessageSlip1Validate;
    }

    public HorizontalLayout getLayoutMessageSlip2Validate() {
	return layoutMessageSlip2Validate;
    }

    public HorizontalLayout getLayoutMdrValidate() {
	return layoutMdrValidate;
    }

    public HorizontalLayout getLayoutServiceFeeValidate() {
	return layoutServiceFeeValidate;
    }

    public HorizontalLayout getLayoutDailyLimitValidate() {
	return layoutDailyLimitValidate;
    }

    public HorizontalLayout getLayoutMonthlyLimitValidate() {
	return layoutMonthlyLimitValidate;
    }

    public HorizontalLayout getLayoutTransactionAmountLimitValidate() {
	return layoutTransactionAmountLimitValidate;
    }

    public HorizontalLayout getLayoutBlank3Validate() {
	return layoutBlank3Validate;
    }

    public HorizontalLayout getLayoutProjectContactNameValidate() {
	return layoutProjectContactNameValidate;
    }

    public HorizontalLayout getLayoutProjectContactPhoneValidate() {
	return layoutProjectContactPhoneValidate;
    }

    public HorizontalLayout getLayoutProjectContactMobileValidate() {
	return layoutProjectContactMobileValidate;
    }

    public HorizontalLayout getLayoutProjectContactEmailAddressValidate() {
	return layoutProjectContactEmailAddressValidate;
    }

    public HorizontalLayout getLayoutOperationContactNameValidate() {
	return layoutOperationContactNameValidate;
    }

    public HorizontalLayout getLayoutOperationContactPhoneValidate() {
	return layoutOperationContactPhoneValidate;
    }

    public HorizontalLayout getLayoutOperationContactMobileValidate() {
	return layoutOperationContactMobileValidate;
    }

    public HorizontalLayout getLayoutOperationContactEmailAddressValidate() {
	return layoutOperationContactEmailAddressValidate;
    }

    public HorizontalLayout getLayoutTechnicalContactNameValidate() {
	return layoutTechnicalContactNameValidate;
    }

    public HorizontalLayout getLayoutTechnicalContactPhoneValidate() {
	return layoutTechnicalContactPhoneValidate;
    }

    public HorizontalLayout getLayoutTechnicalContactMobileValidate() {
	return layoutTechnicalContactMobileValidate;
    }

    public HorizontalLayout getLayoutTechnicalContactEmailAddressValidate() {
	return layoutTechnicalContactEmailAddressValidate;
    }

    public HorizontalLayout getLayoutFinancialContactNameValidate() {
	return layoutFinancialContactNameValidate;
    }

    public HorizontalLayout getLayoutFinancialContactPhoneValidate() {
	return layoutFinancialContactPhoneValidate;
    }

    public HorizontalLayout getLayoutFinancialContactMobileValidate() {
	return layoutFinancialContactMobileValidate;
    }

    public HorizontalLayout getLayoutFinancialContactEmailAddressValidate() {
	return layoutFinancialContactEmailAddressValidate;
    }

    public Button getBtnSave() {
	return btnSave;
    }

    public Button getBtnCancel() {
	return btnCancel;
    }

    public ServiceProfileBean getServiceProfileBean() {
	return serviceProfileBean;
    }

    public void setServiceProfileBean(ServiceProfileBean serviceProfileBean) {
	this.serviceProfileBean = serviceProfileBean;
    }

}
